#!/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@" jails_path="@JAILS_PATH@" lo_path="@LO_PATH@" valgrind_cmd="valgrind --tool=memcheck --trace-children=no -v --read-var-info=yes" # 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. tst= 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;; --valgrind) valgrind=$valgrind_cmd; shift;; -*) ;; # ignore esac shift done echo echo "Running $tst" echo " $cmd_line" # drop .la suffix tst=`echo $tst | sed s/\.la//`; if test "z$tst" != "z" && test "z$CPPUNIT_TEST_NAME" != "z"; then # $tst is not empty, but $CPPUNIT_TEST_NAME is set, exit early if they # don't match. if test "z$tst" != "z$CPPUNIT_TEST_NAME"; then touch $tst_log echo ":test-result: SKIP $tst (disabled by CPPUNIT_TEST_NAME)" > $test_output exit 0; fi fi export LOOL_LOGLEVEL=trace 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 # result logging echo "Test output is '$test_output'" echo > $test_output if test "z$tst" == "z"; then # run the test on a dedicated port export LOOL_TEST_CLIENT_PORT=9984 export LOOL_TEST_MASTER_PORT=9985 echo "Executing external tests" ${valgrind} \ ${abs_top_builddir}/loolwsd --o:sys_template_path="$systemplate_path" \ --o:lo_template_path="$lo_path" \ --o:child_root_path="$jails_path" \ --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 \ > "$tst_log" 2>&1 & echo " executing test" oldpath=`pwd` cd "${abs_top_builddir}/test" if ${valgrind} ./test; then echo "Test run_test.sh passed." echo ":test-result: PASS run_test.sh" >> $oldpath/$test_output retval=0 else echo ":test-result: FAIL run_test.sh" >> $oldpath/$test_output retval=1 fi echo "killing $!" kill $! exit $retval else # newer unit tests. echo "Running $tst | $tst_log ..."; if ${valgrind} \ ${abs_top_builddir}/loolwsd --o:sys_template_path="$systemplate_path" \ --o:lo_template_path="$lo_path" \ --o:child_root_path="$jails_path" \ --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 \ --unitlib=".libs/$tst.so" > "$tst_log" 2>&1; then echo "Test $tst passed." echo ":test-result: PASS $tst" >> $test_output else cat "$tst_log" echo "=============================================================" echo "Test failed on unit: $tst re-run with:" echo " $ gdb --args ${abs_top_builddir}/loolwsd --o:sys_template_path=\"$systemplate_path\" \\" echo " --o:lo_template_path=\"$lo_path\" \\" echo " --o:child_root_path=\"$jails_path\" \\" echo " --o:storage.filesystem[@allow]=true \\" echo " --o:logging.level=trace \\" 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 " --unitlib=\".libs/$tst.so\"" echo "=============================================================" echo ":test-result: FAIL $tst" >> $test_output fi fi # vim:set shiftwidth=4 expandtab: