libreoffice-online/scripts/run-wsdunit
Ashod Nakashian 6de46d746e wsd: test: better run_unit.sh
Unfotunately, if our custom test driver run_unit.sh
fails, the report isn't generated at all.

So, instead, we have to go back to parsing the trs
file to detect success and failure.

We now make fast-fail an option instead.

Also fixes a typo in run_unit_standalone.sh.

Change-Id: I337c2a3edceda01df5f9c13c83eb176930b07e34
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2023-10-24 09:20:32 +02:00

53 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# 'make check' runs all wsdunit tests, this script allows running just one of them
# usage: <script> <test name> [<limit>]
#
# In case a second integer parameter is supplied, then it's supported to try running the test a
# number of times to see if it fails all the time or it's just unstable.
#
name="$1" # e.g. unit-base
if [ -z "$name" ]; then
echo "missing parameter: test name"
exit 1
fi
shift # Eat the first argument.
# 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
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 && grep -q PASS test/$name.trs; 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: