#!/bin/bash #if test x$1 = xsablecc ; then #echo "Cannot handle sablecc yet." # cd sablecc # ./run_sablecc BENCHMARK=$1 if test x$BENCHMARK = xsoot ; then cd soot CLASSPATH=sootclasses-2.1.0.jar:jasminclasses-sable-1.2.7.jar:polyglot-1.1.0.jar MAINCLASS=soot.Main #APP_OPTIONS="-d newClasses --app -W -cp ../$SPEC_DIR/javac/classes:$SABLEVM_WITH_JIT_LOCATION/share/sablevm/sablevm-classpath spec.benchmarks._213_javac.Main" SOOT_BOOT_CLASSPATH=/usr/localcc/pkgs/jdk1.3.1_01/jre/lib/rt.jar SOOT_MAIN_CLASS_TO_PROCESS_PATH=../$SPEC_DIR/jack/classes SOOT_MAIN_CLASS_TO_PROCESS=spec.benchmarks._228_jack.Main #APP_OPTIONS="-d newClasses --app -W -cp ../$SPEC_DIR/javac/classes:$SOOT_BOOT_CLASSPATH spec.benchmarks._213_javac.Main" APP_OPTIONS="-d newClasses --app -W -cp $SOOT_MAIN_CLASS_TO_PROCESS_PATH:$SOOT_BOOT_CLASSPATH $SOOT_MAIN_CLASS_TO_PROCESS" elif test x$BENCHMARK = xsablecc ; then cd sablecc CLASSPATH=$SABLECC_JAR MAINCLASS=org.sablecc.sablecc.SableCC APP_OPTIONS="-d work simplec.sablecc" else # one of the spec BENCHMARK_DIR=$SPEC_DIR/$1 cd $BENCHMARK_DIR CLASSPATH=classes MAINCLASS=`cat mainClass` APP_OPTIONS= fi for f in $VM; do # add sablejit options only for jit variants if test x$f != x`basename $f -jit` ; then ADD_JIT_OPTIONS__="$ADD_JIT_OPTIONS" else ADD_JIT_OPTIONS__= fi if test -e $VM_BASE_NAME-$f; then for r in `seq 1 $NB_RUNS`; do RESULT_FILE=$RESULTS_DIR/$BENCHMARK-$f--run-$r-result.txt CMD="$TIME_CMD $VM_BASE_NAME-$f -Y -c $CLASSPATH $ADD_OPTIONS $ADD_JIT_OPTIONS__ $MAINCLASS $APP_OPTIONS >& $RESULT_FILE" echo $CMD eval $CMD # check if successful... if test x$BENCHMARK = xsoot ; then echo "TODO: Implement $BENCHMARK success test" # assuming always successful for now echo "SUCCESS" >> $RESULT_FILE else if test x$BENCHMARK = xmpegaudio ; then #grep -v '^STATS: ' $RESULT_FILE | head -n -4 > tmp.txt #grep -v '^STATS: ' $RESULT_FILE | tail -n 3 >> tmp.txt grep -v '^Decoding time: ' $RESULT_FILE > tmp.txt mv -f tmp.txt $RESULT_FILE fi cat $RESULT_FILE | grep -v '^STATS: ' | head -n -3 | diff $ROOT_DIR/valid_outputs/${BENCHMARK}.output - if test $? != 0 ; then # failed echo "Benchmark failure: $BENCHMARK on $VM!" echo "FAILURE" >> $RESULT_FILE else echo "SUCCESS" >> $RESULT_FILE fi fi done else echo "Cannot find $f executable, skipping" fi done