libreoffice-online/test/run_unit.sh.in
Ashod Nakashian d1a1c7fb1c wsd: test: reduce output from the test driver
Consolidate and reduce the messages printed
on stdout in the test driver, which also
makes interleaving the messages from
different tests less problematic.

Test output is more concise and cleaner now.

Change-Id: I4bb0de852a935614ebc3d9e663c5454cb10e404f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2022-03-09 19:24:40 -05:00

116 lines
4.1 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# DO NOT EDIT - this file is generated from run_unit.sh.in.
#
cmd_line="$0 $@"
# substituted variables in one place:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
abs_top_builddir="${DIR}/.."
systemplate_path="@SYSTEMPLATE_PATH@"
enable_debug="@ENABLE_DEBUG@"
if test -z "@ENABLE_SETCAP@"; then
capabilities=false
else
capabilities=true
fi
jails_path="@JAILS_PATH@"
lo_path="@LO_PATH@"
valgrind_cmd="valgrind --tool=memcheck --trace-children=no -v --read-var-info=yes"
verbose=''
capabilities="@ENABLE_SETCAP@"
if test "h$capabilities" != "htrue"; then
capabilities=false
fi
# Note that these options are used by commands in the Makefile that
# Automake generates. Don't be mislead by 'git grep' not showing any
# use of --test-name for instance.
print_help ()
{
echo "Usage: run_unit.sh --test-name <name.la> [OPTIONS]"
echo "Runs a specified unit test"
echo ""
echo " --log-file <file> Log output to this file - default /dev/stderr"
echo " --trs-file <file> Records the results of a test for automake (default /dev/stderr)"
echo " --gdb Run under gdb if enabled"
echo " --valgrind Run under valgrind if enabled"
echo " --verbose Print out more stuff - if you run out of things to read"
exit 1
}
tst=
tst_log=/dev/stderr
tst_output=/dev/stderr
while test $# -gt 0; do
case $1 in
--test-name) tst=$2; shift;;
--log-file) tst_log=$2; shift;;
--trs-file) test_output=$2; shift;;
--gdb) trace='gdb --args'; shift;;
--valgrind) trace=$valgrind_cmd; shift;;
--verbose) verbose="--verbose";;
--help) print_help ;;
-*) ;; # ignore
esac
shift
done
if test "z$enable_debug" != "ztrue"; then
echo ""
echo "It is necessary to configure with --enable-debug for unit tests to pass"
echo ""
echo ":test-result: FAIL $tst" > $test_output
exit 1;
fi
# drop .la suffix
tst=`echo $tst | sed "s/\.la//"`;
# result logging
echo > $test_output
printf "\nRunning $tst | $tst_log | $test_output $cmd_line\n";
echo > $tst_log
if ${trace} \
${abs_top_builddir}/coolwsd --o:sys_template_path="$systemplate_path" \
--o:child_root_path="$jails_path" \
--o:security.capabilities="${capabilities}" \
--o:storage.filesystem[@allow]=true \
--o:logging.level=trace \
--o:ssl.key_file_path="${abs_top_builddir}/etc/key.pem" \
--o:ssl.cert_file_path="${abs_top_builddir}/etc/cert.pem" \
--o:ssl.ca_file_path="${abs_top_builddir}/etc/ca-chain.cert.pem" \
--o:admin_console.username=admin --o:admin_console.password=admin \
--o:storage.ssl.enable=false \
--unattended \
--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
else
echo "Test $tst FAILED. Finished in ${SECONDS}s."
cat $tst_log
echo "============================================================="
echo "Test failed on unit: $tst re-run with (remove --unattended to run without gdb and get prompted):"
echo " $ gdb --args ${abs_top_builddir}/coolwsd --o:sys_template_path=\"$systemplate_path\" \\"
echo " --o:child_root_path=\"$jails_path\" \\"
echo " --o:security.capabilities=\"${capabilities}\" \\"
echo " --o:storage.filesystem[@allow]=true \\"
echo " --o:logging.level=error\\" # logs and gdb don't go well together
echo " --o:ssl.key_file_path=\"${abs_top_builddir}/etc/key.pem\" \\"
echo " --o:ssl.cert_file_path=\"${abs_top_builddir}/etc/cert.pem\" \\"
echo " --o:ssl.ca_file_path=\"${abs_top_builddir}/etc/ca-chain.cert.pem\" \\"
echo " --o:admin_console.username=admin --o:admin_console.password=admin \\"
echo " --o:storage.ssl.enable=false \\"
echo " --unattended \\"
echo " --unitlib=\"${abs_top_builddir}/test/.libs/$tst.so\""
echo ""
echo " $ less $tst_log # for detailed failure log files"
echo "============================================================="
echo ":test-result: FAIL $tst" >> $test_output
fi
# vim:set shiftwidth=4 expandtab: