aebb43f48d
which don't use coolmount and coolforkit, but instead use linux mount spaces with coolforkitns instead. That doesn't need sudo, so drop automatically calling that in make to setcaps on coolmount + coolforkit for an easier developer experience. Signed-off-by: Caolán McNamara <caolan.mcnamara@collabora.com> Change-Id: I6f8ddaf1053d084ec8c1f22adf830a677e80cadc
131 lines
4.7 KiB
Bash
Executable file
131 lines
4.7 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@"
|
|
fail_fast=''
|
|
|
|
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 " --fail-fast If a test fails, subsequent tests will not run and no report is generated"
|
|
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;;
|
|
--fail-fast) fail_fast='true'; 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 \
|
|
--o:mount_namespaces[@default]=true \
|
|
--o:experimental_features=true \
|
|
--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
|
|
exit 0
|
|
else
|
|
echo "Test $tst FAILED. Finished in ${SECONDS}s."
|
|
if test $(stat -c %s $tst_log) -le 1000000000; then
|
|
cat $tst_log
|
|
else
|
|
echo "Not showing $tst_log, which is larger than 1GB in size."
|
|
fi
|
|
echo "============================================================="
|
|
echo "Test failed on $tst after ${SECONDS}s. 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 " --o:mount_namespaces[@default]=true \\"
|
|
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
|
|
|
|
if test "z$fail_fast" == "ztrue"; then
|
|
exit 1
|
|
fi
|
|
|
|
# vim:set shiftwidth=4 expandtab:
|