2006-08-19 Aaron Bockover <abockover@novell.com>
[mono.git] / eglib / test / test-both
index a006a43fdf93b10510c0c321ae5cfd6b78dc2c69..fd3322d3a2bd51e6bb9a9df2b8d317a325a05370 100755 (executable)
@@ -1,5 +1,46 @@
 #!/bin/sh
 
+if [ "x$1" = "x--speed-compare" ]; then
+       ITERATIONS=100000
+       if [ ! -z "$2" ]; then
+               case $2 in
+                       *[0-9]*) ITERATIONS=$2; break;
+               esac
+       fi      
+
+       OPTIONS="-qnti $ITERATIONS"
+
+       for arg in $@; do
+               if [ "x$arg" = "x--speed-compare" ]; then       
+                       continue;
+               elif [ "$arg" = "$ITERATIONS" ]; then
+                       continue;
+               fi
+
+               OPTIONS="$OPTIONS $arg"
+       done
+       
+       echo "Running tests with $OPTIONS..."
+       
+       GLIB=`./test-glib $OPTIONS`
+       EGLIB=`./test-eglib $OPTIONS`
+
+       # this blows
+       FASTER_NAME=`echo "$GLIB GLib $EGLIB EGlib" | awk '{ if($1 < $3) print $2; else print $4 }'`
+       FASTER_SPEED=`echo "$GLIB $EGLIB" | awk '{ if($1 < $2) print $1; else print $2 }'`
+       SLOWER_NAME=`echo "$GLIB GLib $EGLIB EGlib" | awk '{ if($1 > $3) print $2; else print $4 }'`
+       SLOWER_SPEED=`echo "$GLIB $EGLIB" | awk '{ if($1 > $2) print $1; else print $2 }'`
+
+       FASTER_PERCENTAGE=`echo "$SLOWER_SPEED $FASTER_SPEED" | awk '{ print ($1 / $2) * 100 }'`
+
+       echo "$FASTER_NAME $FASTER_SPEED"
+       echo "$SLOWER_NAME $SLOWER_SPEED"
+       echo "------------------------------------------------"
+       echo "$FASTER_NAME is $FASTER_PERCENTAGE% faster than $SLOWER_NAME"
+       
+       exit 0;
+fi
+
 ./test-eglib $@
 ./test-glib $@