X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=testub10.git;a=blobdiff_plain;f=scripts%2Fbench.sh;h=009a0f14669a70ae3951ece9e0ab4cba6c999bde;hp=4973e7b2e9261da2faf64e0d912b0cffad48a83c;hb=8160a0a30f55dbb60dcbda2a35221e4bc7a40120;hpb=2d9a584f3a0925d38d35a3a72782222d16e88086 diff --git a/scripts/bench.sh b/scripts/bench.sh index 4973e7b..009a0f1 100755 --- a/scripts/bench.sh +++ b/scripts/bench.sh @@ -48,12 +48,6 @@ for i in $TEST/*.0; do # create executable gcc -DCALL=\"${i%.0}.call\" -o $TMPNAME $TMPNAME.s $TESTMAIN $CALLCONV - # count instructions - $DUMPINSTR $TMPNAME call >/dev/null - if [ $? != 0 ]; then - echo "$bi FEHLGESCHLAGEN" - continue - fi # extract the exported symbols from the .s file #LABEL=`grep '.globl' $TMPNAME.s | sed 's/^.*\\.globl *\\([a-zA-Z0-9_]\\+\\).*$/\1/g'` @@ -61,9 +55,16 @@ for i in $TEST/*.0; do # this won't work, we need all actual labels LABEL=`grep '[a-zA-Z0-9_.$]\\+:' $TMPNAME.s | sed 's/^\\(.*[^a-zA-Z0-9_.$]\\)\\?\\([a-zA-Z0-9_.$]\\+\\):.*$/\2/g'` + rm -f $TMPNAME.trace MATCHES=0 for j in $LABEL; do - MATCHES="$MATCHES\\|$j" + MATCHES="$MATCHES\\|$j" + # count instructions + $DUMPINSTR $TMPNAME $j > /dev/null + if [ $? != 0 ]; then + echo "$bi FEHLGESCHLAGEN" + continue + fi done # filter trace @@ -73,14 +74,30 @@ for i in $TEST/*.0; do if [ -f $TEST/${bi}.instr ]; then ti=`cat $TEST/$bi.instr` else - echo "err: fuer den testfall \"$bi\" existiert noch keine referenzdatei" + echo "err: fuer den testfall \"$bi\" existiert noch keine referenzdatei. instruktionen werden verworfen." ti=0 fi - echo "$bi: $ni (referenz: $ti)" + + if [ $ni -gt $ti ]; then + #red + bcolor="\033[01;31m" + else + if [ $ni -eq $ti ]; then + #gray + bcolor="\033[01;30m" + else + #green + bcolor="\033[01;32m" + fi + fi + + echo -e "$bcolor $bi: $ni (referenz: $ti) \033[0m" echo "$bi $ni" >> $RESULT - let gni=gni+$ni - let gti=gti+$ti + if [ -f $TEST/${bi}.instr ]; then + let gni=gni+$ni + let gti=gti+$ti + fi # remove waste rm -f $TMPNAME $TMPNAME.s $TMPNAME.trace