#!/bin/bash
# A (work-in-progress) test script for running our benchmarks
+# Runs all tests, with timing information
-## Unfinished benchmarks - do not use
-# queue williams-queue
+DATECMD="date +%Y-%m-%d-%R"
+DATE="`${DATECMD}`"
-RUN="./run.sh"
-DATE="date +%Y-%m-%d-%R"
+TESTS="chase-lev-deque/main"
+TESTS+=" spsc-queue/spsc-queue"
+TESTS+=" spsc-bugfix/spsc-queue"
+TESTS+=" barrier/barrier"
+TESTS+=" dekker-fences/dekker-fences"
+TESTS+=" mcs-lock/mcs-lock"
+TESTS+=" mpmc-queue/mpmc-queue-rdwr"
+TESTS+=" ms-queue/main"
+TESTS+=" linuxrwlocks/linuxrwlocks"
-${DATE}
+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
t=$1
shift
ARGS="$@"
+ RUN="./run.sh"
+
echo "-----------------------------------------------"
- LOG=log-${COUNT}
echo "*******************************"
- echo "Running test ${COUNT} (${t}): logging to ${LOG}"
+ echo "Running test ${COUNT} (${t})"
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
echo
echo "Test done; sleeping for a few seconds"
echo
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
+}
+
+# Check if git is available, and this is a git repository
+GIT=0
+which git &> /dev/null && git rev-parse &> /dev/null && GIT=1
+
+# Print out some git information, if available
+if [ ${GIT} -ne 0 ]; then
+ cd ..
+ git log --oneline -1
+ cd - > /dev/null
+ git log --oneline -1
+ echo
+fi
+run_all_tests