bench.sh: fixup Brian D.'s script change
[model-checker-benchmarks.git] / bench.sh
index 964cd28ee5c23e5d5ecda95dfcc15b1590c8e10b..f7c5cdb7dc0579c20a2ebeaf2770506ce18957c7 100755 (executable)
--- a/bench.sh
+++ b/bench.sh
@@ -1,17 +1,38 @@
 #!/bin/bash
 
 # A (work-in-progress) test script for running our benchmarks
-# Runs all tests, logging output to a directory named 'run-<date-time>'
+# Runs all tests, logging output to a directory named
+# '${BASEDIR}/run-<date-time>', where ${BASEDIR} is either the current
+# directory or the first parameter to this script
 
 ## Unfinished benchmarks - do not use
 # queue williams-queue
 
 DATECMD="date +%Y-%m-%d-%R"
 DATE="`${DATECMD}`"
-DIR="run-${DATE}"
+BASEDIR=.
+
+[ $# -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"
+
+MODEL_ARGS="-y -m 2 -u 3"
+
+#TESTS+=" dekker-fences/dekker-fences"
+#TESTS+=" mpmc-queue/mpmc-2r1w"
+#TESTS+=" mpmc-queue/mpmc-1r2w-noinit"
+#TESTS+=" mpmc-queue/mpmc-queue-rdwr"
+#TESTS+=" mpmc-queue/mpmc-queue-noinit"
 
-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 2"
 COUNT=0
 
 function run_test {
@@ -26,18 +47,7 @@ function run_test {
        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
@@ -58,4 +68,4 @@ function run_all_tests {
 }
 
 mkdir ${DIR}
-(git log --oneline -1; echo; run_all_tests) | tee ${DIR}/timing.log
+(cd ..; git log --oneline -1; cd - > /dev/null; git log --oneline -1; echo; run_all_tests) | tee ${DIR}/timing.log