X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=run%2Ftests;h=a750fde101b81e943c6ae3fcc064405737a95feb;hb=b94546264660e266de6828bdd8a3e176c66903a8;hp=7993facf9fefdd56e8727f6f0bd7f0e7ac39735e;hpb=0a93237cb5e4642d3b698ff9b7d0cfae5401478c;p=dcpomatic.git diff --git a/run/tests b/run/tests index 7993facf9..a750fde10 100755 --- a/run/tests +++ b/run/tests @@ -1,16 +1,89 @@ #!/bin/bash # # e.g. --run_tests=foo +set -e + +PRIVATE_GIT="881c48805e352dfe150993814757ca974282be18" + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +source $DIR/environment + +if [ "$1" == "--check" ]; then + shift 1 + check=1 +else + check=0 +fi + +if [ "$(uname)" == "Linux" ]; then + rm -f build/test/dcpomatic2_openssl + # This must be our patched openssl or tests will fail + if [ ! -f build/test/dcpomatic2_openssl ]; then + ln -s ../../../openssl/apps/openssl build/test/dcpomatic2_openssl + fi + export DCPOMATIC_TEST_TOOLS_PATH=/opt/asdcplib/bin + if [ -f /src/backports/dcp_inspect ]; then + export DCPOMATIC_DCP_INSPECT=/src/backports/dcp_inspect + fi + set +e + python3 -m clairmeta.cli --help > /dev/null 2>&1 + if [ "$?" == "0" ]; then + export DCPOMATIC_CLAIRMETA=1 + fi + set -e +fi + +if [ "$(uname)" == "Darwin" ]; then + resources=build/Resources + rm -rf $resources + mkdir -p $resources + cp fonts/*.ttf $resources + cp -r ../libdcp/tags $resources + cp -r ../libdcp/xsd $resources + cp ../libdcp/ratings $resources + rm -f build/test/openssl + ln -s ../../../openssl/apps/openssl build/test/openssl + # We need to find ffcmp in here + export PATH=$PATH:/Users/ci/workspace/bin +fi + +if [ "$check" == "1" ]; then + if [ "$DCPOMATIC_TEST_PRIVATE" == "" ]; then + pushd ../dcpomatic-test-private + else + pushd $DCPOMATIC_TEST_PRIVATE + fi + current=$(git rev-parse HEAD) + if [ "$current" != "$PRIVATE_GIT" ]; then + echo "Unexpected dcpomatic-test-private version" + exit 1 + fi + popd +fi -export LD_LIBRARY_PATH=build/src/lib:$LD_LIBRARY_PATH -export DCPOMATIC_LINUX_SHARE_PREFIX=`pwd` if [ "$1" == "--debug" ]; then shift; - gdb --args build/test/unit-tests --catch_system_errors=no $* + gdb --args build/test/unit-tests --catch_system_errors=no --log_level=test_suite $* +elif [ "$1" == "--backtrace" ]; then + shift; + gdb -batch -ex "run" -ex "thread apply all bt" -return-child-result --args build/test/unit-tests --catch_system_errors=yes $* elif [ "$1" == "--valgrind" ]; then shift; - valgrind --tool="memcheck" --leak-check=full build/test/unit-tests $* +# valgrind --tool="memcheck" --vgdb=yes --vgdb-error=0 build/test/unit-tests $* + valgrind --tool="memcheck" --suppressions=suppressions build/test/unit-tests $* +elif [ "$1" == "--callgrind" ]; then + shift; + valgrind --tool="callgrind" build/test/unit-tests $* +elif [ "$1" == "--quiet" ]; then + shift; + build/test/unit-tests --catch_system_errors=no $* +elif [ "$1" == "--drd" ]; then + shift; + valgrind --tool="drd" build/test/unit-tests $* +elif [ "$1" == "--helgrind" ]; then + shift; + valgrind --tool="helgrind" build/test/unit-tests $* else - build/test/unit-tests --catch_system_errors=no --log_level=test_suite $* + ulimit -c unlimited + build/test/unit-tests --catch_system_errors=no $* fi -