diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2023-09-23 13:02:44 -0400 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-09-25 08:58:39 +0200 |
commit | 4407ac9136fa88a75bd311cdf352d21d15fbfe66 (patch) | |
tree | d52665f02a229151023f9eb4e62fc83185af11a4 /scripts | |
parent | wsd: test: fix typo in test name (diff) | |
download | online-4407ac9136fa88a75bd311cdf352d21d15fbfe66.tar.gz online-4407ac9136fa88a75bd311cdf352d21d15fbfe66.zip |
wsd: test: improved single-test runner
The test now runs as many times as requested
and doesn't stop on first failure. Instead,
it reports the number of passing vs failing
runs.
Also simplifies the detection of the test
result by using the exit code instead
of grepping the output file.
Change-Id: Ie458b2963411632d566cd87d2dfb9137044d2b4b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/run-wsdunit | 50 |
1 files changed, 32 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: |