cbe29bc5bce8f82fd9cf6c310bb0225c0a9e1ba3
[model-checker-benchmarks.git] / bench.sh
1 #!/bin/bash
2
3 # A (work-in-progress) test script for running our benchmarks
4 # Runs all tests, with timing information
5
6 ## Unfinished benchmarks - do not use
7 # queue williams-queue
8
9 DATECMD="date +%Y-%m-%d-%R"
10 DATE="`${DATECMD}`"
11
12 TESTS="chase-lev-deque/main"
13 TESTS+=" spsc-queue/spsc-queue"
14 TESTS+=" spsc-bugfix/spsc-queue"
15 TESTS+=" barrier/barrier"
16 TESTS+=" dekker-fences/dekker-fences"
17 TESTS+=" mcs-lock/mcs-lock"
18 TESTS+=" mpmc-queue/mpmc-queue-rdwr"
19 TESTS+=" ms-queue/main"
20 TESTS+=" linuxrwlocks/linuxrwlocks"
21
22 MODEL_ARGS="-y -m 2 -u 3"
23
24 #TESTS+=" mpmc-queue/mpmc-2r1w"
25 #TESTS+=" mpmc-queue/mpmc-1r2w-noinit"
26 #TESTS+=" mpmc-queue/mpmc-queue-rdwr"
27 #TESTS+=" mpmc-queue/mpmc-queue-noinit"
28
29 COUNT=0
30
31 function run_test {
32         t=$1
33         shift
34         ARGS="$@"
35         RUN="./run.sh"
36
37         echo "-----------------------------------------------"
38         echo "*******************************"
39         echo "Running test ${COUNT} (${t})"
40         echo "ARGS=${ARGS}"
41         echo "*******************************"
42         (time ${RUN} ${t} ${ARGS} 2>&1) 2>&1
43         echo
44         echo "Test done; sleeping for a few seconds"
45         echo
46
47         let COUNT++
48 }
49
50 function run_all_tests {
51         echo ${DATE}
52
53         for t in ${TESTS}
54         do
55                 run_test ${t} ${MODEL_ARGS}
56         done
57         #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 1
58         #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 1 -w 2
59         #run_test mpmc-queue/mpmc-queue ${MODEL_ARGS} -- -r 2 -w 2
60 }
61
62 # Check if git is available, and this is a git repository
63 GIT=0
64 which git &> /dev/null && git rev-parse &> /dev/null && GIT=1
65
66 # Print out some git information, if available
67 if [ ${GIT} -ne 0 ]; then
68         cd ..
69         git log --oneline -1
70         cd - > /dev/null
71         git log --oneline -1
72         echo
73 fi
74 run_all_tests