| exit; |
exit; |
| fi |
fi |
| |
|
| cpu_speed=$(tail -n 1 "$reports/cpuinfo"); |
if make -v 2> /dev/null | grep 'GNU' > /dev/null; then |
| |
gmake="make"; |
| |
elif gmake -v 2> /dev/null | grep 'GNU' > /dev/null; then |
| |
gmake="gmake"; |
| |
else |
| |
error 0 "could not find GNU make on this machine."; |
| |
exit; |
| |
fi |
| |
|
| |
cpu_speed=$(tail -1 "$reports/cpuinfo"); |
| |
|
| |
max_freq="/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq"; |
| |
cur_freq="/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq"; |
| |
|
| if [ -r "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq" ]; then |
if [ -r "$max_freq" -a -r "$cur_freq" ]; then |
| status 1 "warming up CPU"; |
status 1 "warming up CPU"; |
| |
|
| i=0; |
i=0; |
| while [ $i -lt 10000 ]; do ((i++)); |
while [ $i -lt 1000 ]; do i=$(expr $i + 1); |
| curr_speed=$(awk '/^cpu MHz/ { print $4; exit; }' /proc/cpuinfo); |
if diff "$max_freq" "$cur_freq" > /dev/null; then |
| |
cur_speed=$(awk '{ print $1 / 1000; exit; }' $cur_freq); |
| [ $((${cpu_speed%.*} - ${curr_speed%.*})) -gt 10 ] \ |
break; |
| || break; |
fi |
| done |
done |
| |
|
| status 1; |
status 1; |
| |
|
| |
if [ ${cur_speed%.*} != ${cpu_speed%.*} ]; then |
| |
warning 1 "clock speed might have changed."; |
| |
fi |
| fi |
fi |
| |
|
| [ -r "$reports/.skip-slow" ] && skip=$(<"$reports/.skip-slow"); |
[ -r "$reports/.skip-slow" ] && skip=$(<"$reports/.skip-slow"); |
| conf=$4; |
conf=$4; |
| |
|
| ext=${var}_${conf}; |
ext=${var}_${conf}; |
| make="make var=$var conf=$conf"; |
make="$gmake var=$var conf=$conf"; |
| |
|
| name=$($make name); |
name=$($make name); |
| [ "$var" = "1" ] || name="$name (variant $var)"; |
[ "$var" = "1" ] || name="$name (variant $var)"; |
| |
|
| status 1 "verifying test vectors"; |
status 1 "verifying test vectors"; |
| |
|
| if diff -waq vectors_$ext "$srcdir/$vecdir/"*"$vectors" \ |
result=$(diff -w vectors_$ext "$srcdir/$vecdir/"*"$vectors" | awk \ |
| > /dev/null; then |
'BEGIN { result="match"; } |
| |
/^</ { print "conflict"; exit; } |
| |
/^>/ { result="partial"; } |
| |
END { print result; }'); |
| |
|
| status 1; |
status 1; |
| |
|
| |
case "$result" in |
| |
match) |
| rm -f vectors_$ext; |
rm -f vectors_$ext; |
| else |
;; |
| if diff -wad vectors_$ext "$srcdir/$vecdir/"*"$vectors" \ |
conflict) |
| | grep '<' > /dev/null; then |
|
| status 1; |
|
| mv speed_current info_$ext; |
mv speed_current info_$ext; |
| error 0 "vectors do not match. check vectors_$ext."; |
error 0 "vectors do not match. check vectors_$ext."; |
| |
|
| $make clean &> /dev/null; |
$make clean &> /dev/null; |
| return; |
return; |
| else |
;; |
| status 1; |
partial) |
| warning 1 "vectors are incomplete but match."; |
warning 1 "vectors are incomplete but match."; |
| rm -f vectors_$ext; |
rm -f vectors_$ext; |
| fi |
;; |
| fi |
esac |
| |
|
| detailed=true; |
detailed=true; |
| elif [ "$comparison" = "better" ]; then |
elif [ "$comparison" = "better" ]; then |
| return; |
return; |
| fi |
fi |
| |
|
| make variants &> /dev/null; |
$gmake variants &> /dev/null; |
| |
|
| for var in $(<variants); do |
for var in $(<variants); do |
| run $srcdir $vecdir $var $conf; |
run $srcdir $vecdir $var $conf; |