bench.sh: add test script for running benchmarks
[model-checker-benchmarks.git] / bench.sh
1 #!/bin/bash
2
3 # A (work-in-progress) test script for running our benchmarks
4
5 ## Unfinished benchmarks - do not use
6 # queue williams-queue
7
8 RUN="./run.sh"
9 DATE="date +%Y-%m-%d-%R"
10
11 ${DATE}
12
13 COUNT=0
14
15 function run_test {
16         t=$1
17         shift
18         ARGS="$@"
19         echo "-----------------------------------------------"
20         LOG=log-${COUNT}
21         echo "*******************************"
22         echo "Running test ${COUNT} (${t}): logging to ${LOG}"
23         echo "ARGS=${ARGS}"
24         echo "*******************************"
25         time ${RUN} ${t} ${ARGS} > ${LOG} 2>&1
26         echo
27         grep -A 2 "Number of executions" ${LOG} | tail -3
28         echo
29         echo "Test done; sleeping for a few seconds"
30         echo
31         sleep 3
32
33         echo "*******************************"
34         echo "Re-running test for timing data"
35         echo "*******************************"
36         time ${RUN} ${t} ${ARGS} > /dev/null 2>&1
37         echo
38         echo "Test done; sleeping for a few seconds"
39         echo
40
41         let COUNT++
42 }
43
44 TESTS="barrier/barrier mcs-lock/mcs-lock spsc-queue/spsc-queue mpmc-queue/mpmc-1r2w mpmc-queue/mpmc-2r1w mpmc-queue/mpmc-queue"
45 MODEL_ARGS="-f 4 -m 1"
46 for t in ${TESTS}
47 do
48         run_test ${t} ${MODEL_ARGS}
49 done
50 #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 1
51 #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 1 -w 2
52 #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 2