summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/run-wsdunit50
-rwxr-xr-xtest/run_unit.sh.in2
2 files changed, 34 insertions, 18 deletions
diff --git a/scripts/run-wsdunit b/scripts/run-wsdunit
index 8c096af035..b0f0eab9ca 100755
--- a/scripts/run-wsdunit
+++ b/scripts/run-wsdunit
@@ -13,27 +13,41 @@ if [ -z "$name" ]; then
echo "missing parameter: test name"
exit 1
fi
+shift # Eat the first argument.
-limit="$2"
-count=0
-while true
-do
- count=$((count+1))
-
- (cd test; ./run_unit.sh --test-name $name.la --log-file $name.log --trs-file $name.trs --color-tests yes --enable-hard-errors yes --expect-failure no -- ./$name.la)
- ./coolwsd --disable-cool-user-checking --cleanup
- if ! grep -q FAIL test/$name.trs; then
- RET=0
- break
- else
- RET=1
- fi
+# Maximum number of runs.
+limit=1
+if [ $# -ne 0 ];
+then
+ limit=$1
+ if test $limit -lt 1; then
+ echo "Cannot run $limit times; please enter a positive number."
+ exit 1
+ fi;
+ echo "Will run $name $limit times."
+ shift
+fi
- if [ -z "$limit" ] || [ "$count" -eq "$limit" ]; then
- break
- fi
-done
+pass=0;
+for ((i=1; i<=$limit; i++))
+do
+ echo;
+ echo ">>> $(date +%b-%d) @ $(date +%H:%M:%S) Run #$i (of $limit):";
+ ./coolwsd --disable-cool-user-checking --cleanup &> /dev/null
+ (cd test && ./run_unit.sh --test-name $name.la --log-file $name.log --trs-file $name.trs --color-tests yes --enable-hard-errors yes --expect-failure no -- ./$name.la)
+ if test $? -eq 0; then
+ ((pass=pass+1));
+ fi;
+ echo;
+done;
+((res=pass*100/limit));
+echo ">>> Passed $pass times out of $limit runs: $res%";
+if test $pass -ne $limit; then
+ echo ">>> FAILED";
+ RET=1;
+fi
+./coolwsd --disable-cool-user-checking --cleanup
exit $RET
# vi:set shiftwidth=4 expandtab:
diff --git a/test/run_unit.sh.in b/test/run_unit.sh.in
index bea59ce612..59cd948edd 100755
--- a/test/run_unit.sh.in
+++ b/test/run_unit.sh.in
@@ -90,6 +90,7 @@ if ${trace} \
--unitlib="${abs_top_builddir}/test/.libs/$tst.so" 2> "$tst_log" 1>&2; then
echo "Test $tst passed. Finished in ${SECONDS}s."
echo ":test-result: PASS $tst" >> $test_output
+ exit 0
else
echo "Test $tst FAILED. Finished in ${SECONDS}s."
cat $tst_log
@@ -112,5 +113,6 @@ else
echo "============================================================="
echo ":test-result: FAIL $tst" >> $test_output
fi
+exit 1
# vim:set shiftwidth=4 expandtab: