d1a1c7fb1c
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>
116 lines
4.1 KiB
Bash
Executable file
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:
|