X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=bench.sh;h=03409356aa37f07c72a046c8b7972328d20e8009;hb=6ad55b673cd0430f7c525f0d19e4fff5b94c971e;hp=852c1663fdb3176a1f0c7e5b4d33059a6c734511;hpb=c111347c69f21c5363938e598451571109ed9dbe;p=model-checker-benchmarks.git diff --git a/bench.sh b/bench.sh index 852c166..0340935 100755 --- a/bench.sh +++ b/bench.sh @@ -1,14 +1,37 @@ #!/bin/bash # A (work-in-progress) test script for running our benchmarks +# Runs all tests, logging output to a directory named +# '${BASEDIR}/run-', where ${BASEDIR} is either the current +# directory or the first parameter to this script ## Unfinished benchmarks - do not use # queue williams-queue -RUN="./run.sh" -DATE="date +%Y-%m-%d-%R" +DATECMD="date +%Y-%m-%d-%R" +DATE="`${DATECMD}`" +BASEDIR=. -${DATE} +[ $# -gt 0 ] && [ -d "$1" ] && BASEDIR="$1" && shift + +DIR="${BASEDIR}/run-${DATE}" + +TESTS="chase-lev-deque/main" +TESTS+=" spsc-queue/spsc-queue" +TESTS+=" spsc-bugfix/spsc-queue" +TESTS+=" barrier/barrier" +TESTS+=" mcs-lock/mcs-lock" +TESTS+=" mpmc-queue/mpmc-queue-rdwr" +TESTS+=" ms-queue/main" +TESTS+=" linuxrwlocks/linuxrwlocks" +TESTS+=" dekker-fences/dekker-fences" + +MODEL_ARGS="-y -m 2 -u 3" + +#TESTS+=" mpmc-queue/mpmc-2r1w" +#TESTS+=" mpmc-queue/mpmc-1r2w-noinit" +#TESTS+=" mpmc-queue/mpmc-queue-rdwr" +#TESTS+=" mpmc-queue/mpmc-queue-noinit" COUNT=0 @@ -16,24 +39,15 @@ function run_test { t=$1 shift ARGS="$@" + RUN="./run.sh" + LOG=${DIR}/log-${COUNT} + echo "-----------------------------------------------" - LOG=log-${COUNT} echo "*******************************" echo "Running test ${COUNT} (${t}): logging to ${LOG}" echo "ARGS=${ARGS}" echo "*******************************" - time ${RUN} ${t} ${ARGS} > ${LOG} 2>&1 - echo - grep -A 2 "Number of executions" ${LOG} | tail -3 - echo - echo "Test done; sleeping for a few seconds" - echo - sleep 3 - - echo "*******************************" - echo "Re-running test for timing data" - echo "*******************************" - time ${RUN} ${t} ${ARGS} > /dev/null 2>&1 + (time ${RUN} ${t} ${ARGS} 2>&1) 2>&1 | tee ${LOG} echo echo "Test done; sleeping for a few seconds" echo @@ -41,12 +55,17 @@ function run_test { let COUNT++ } -TESTS="barrier/barrier mcs-lock/mcs-lock spsc-queue/spsc-queue mpmc-queue/mpmc-1r2w mpmc-queue/mpmc-2r1w mpmc-queue/mpmc-queue" -MODEL_ARGS="-f 4 -m 1" -for t in ${TESTS} -do - run_test ${t} ${MODEL_ARGS} -done -#run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 1 -#run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 1 -w 2 -#run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 2 +function run_all_tests { + echo ${DATE} + + for t in ${TESTS} + do + run_test ${t} ${MODEL_ARGS} + done + #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 1 + #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 1 -w 2 + #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 2 +} + +mkdir ${DIR} +(cd ..; git log --oneline -1; cd - > /dev/null; git log --oneline -1; echo; run_all_tests) | tee ${DIR}/timing.log