Blame tests/suite/cbc-record-check.sh

Packit aea12f
#!/bin/bash
Packit aea12f
Packit aea12f
ecode=0
Packit aea12f
Packit aea12f
FAILED=""
Packit aea12f
Packit aea12f
if test -z "${OPTIONS}";then
Packit aea12f
OPTIONS="sha1 sha256 sha384 sha256-new sha1-one"
Packit aea12f
fi
Packit aea12f
Packit aea12f
echo "Running for: $OPTIONS"
Packit aea12f
Packit aea12f
TIME=ns
Packit aea12f
Packit aea12f
function plot()
Packit aea12f
{
Packit aea12f
	hash=$1
Packit aea12f
	R --no-save <<_EOF_
Packit aea12f
#plot
Packit aea12f
require(lattice)
Packit aea12f
Packit aea12f
z=read.csv("out-$hash.txt", header=TRUE);
Packit aea12f
Packit aea12f
options(scipen=999)
Packit aea12f
Packit aea12f
m <- matrix(ncol=3,nrow=256)
Packit aea12f
Packit aea12f
png(filename = "$hash-density.png",width=3072,height=4096,units="px",bg="white");
Packit aea12f
d <- density(unlist(z[1,]));
Packit aea12f
plot(d, ylab="Delta", xlab="${TIME}", col="red", main=sprintf("estimated PDF for %d", 1));
Packit aea12f
for (row in c(4,72,253,256)){
Packit aea12f
  lines(density(unlist(z[row,])), col = sample(colours(), 5));
Packit aea12f
}
Packit aea12f
dev.off();
Packit aea12f
Packit aea12f
colnames(m) <- c("Delta","TimeMedian","TimeAverage")
Packit aea12f
for (row in 1:256){
Packit aea12f
  v=tail(z[row,], length(z[row,])-1)
Packit aea12f
  m[row,][1] = unlist(z[row,][1]);
Packit aea12f
  m[row,][2] = median(unlist(v));
Packit aea12f
  m[row,][3] = mean(unlist(v));
Packit aea12f
}
Packit aea12f
Packit aea12f
png(filename = "$hash-timings-med.png",width=1024,height=1024,units="px",bg="white");
Packit aea12f
plot(m[,1],m[,2],xlab="Delta",ylab="Median timings (${TIME})");
Packit aea12f
dev.off();
Packit aea12f
Packit aea12f
png(filename = "$hash-timings-ave.png",width=1024,height=1024,units="px",bg="white");
Packit aea12f
plot(m[,1],m[,3],xlab="Delta",ylab="Average timings (${TIME})");
Packit aea12f
dev.off();
Packit aea12f
Packit aea12f
estatus=0;
Packit aea12f
for (row in 2:256){
Packit aea12f
  v=ks.test(unlist(z[1,]),unlist(z[row,]));
Packit aea12f
  p = 0.05/255
Packit aea12f
  if (v[2] < p) {
Packit aea12f
    print (row);
Packit aea12f
    print (v[2]);
Packit aea12f
    estatus=1;
Packit aea12f
  }
Packit aea12f
}
Packit aea12f
q(status=estatus);
Packit aea12f
_EOF_
Packit aea12f
Packit aea12f
if test $? != 0;then
Packit aea12f
	echo "*** Failed test for $hash"
Packit aea12f
	FAILED="${FAILED} $hash"
Packit aea12f
	ecode=1
Packit aea12f
fi
Packit aea12f
}
Packit aea12f
Packit aea12f
for hash in ${OPTIONS};do
Packit aea12f
	if ! test -f out-$hash.txt;then
Packit aea12f
		./mini-record-timing $hash
Packit aea12f
	fi
Packit aea12f
	plot $hash
Packit aea12f
done
Packit aea12f
Packit aea12f
echo "Failed: ${FAILED}"
Packit aea12f
Packit aea12f
exit $ecode