X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=run%2Ftests;h=6f43290c4f1d56488fd719f7a05b89708c71e78a;hb=HEAD;hp=1dfd64f4ad98b443e83ca2ca00e84d704afede2c;hpb=f10e4d53b1ffb4fc441282f497f2ef0392bebcc2;p=dcpomatic.git diff --git a/run/tests b/run/tests index 1dfd64f4a..5f356add3 100755 --- a/run/tests +++ b/run/tests @@ -1,14 +1,74 @@ #!/bin/bash # # e.g. --run_tests=foo +set -e + +PRIVATE_GIT="881c48805e352dfe150993814757ca974282be18" + +type="" +check=0 +while [[ $# -gt 0 ]]; do + case $1 in + -e) + environment=$2 + shift + shift + ;; + --debug) + type="debug" + shift + ;; + --backtrace) + type="backtrace" + shift + ;; + --valgrind) + type="valgrind" + shift + ;; + --callgrind) + type="callgrind" + shift + ;; + --quiet) + type="quiet" + shift + ;; + --drd) + type="drd" + shift + ;; + --helgrind) + type="helgrind" + shift + ;; + --check) + check=1 + shift + ;; + *) + break + ;; + esac +done if [ "$(uname)" == "Linux" ]; then - export LD_LIBRARY_PATH=build/src/lib:/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH=build/src/lib:../../lib:/usr/local/lib:/usr/local/lib64:$LD_LIBRARY_PATH 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 @@ -22,35 +82,41 @@ if [ "$(uname)" == "Darwin" ]; then rm -f build/test/openssl ln -s ../../../openssl/apps/openssl build/test/openssl # SIP stops this being passed in from the caller's environment - export DYLD_LIBRARY_PATH=/Users/ci/osx-environment/x86_64/10.10/lib:/Users/ci/workspace/lib + export DYLD_LIBRARY_PATH=$environment/x86_64/10.10/lib:$HOME/workspace/lib # We need to find ffcmp in here - export PATH=$PATH:/Users/ci/workspace/bin + export PATH=$PATH:$HOME/workspace/bin fi -if [ "$1" == "--debug" ]; then - shift; +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 + +if [ "$type" == "debug" ]; then gdb --args build/test/unit-tests --catch_system_errors=no --log_level=test_suite $* -elif [ "$1" == "--backtrace" ]; then - shift; +elif [ "$type" == "backtrace" ]; then 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; +elif [ "$type" == "valgrind" ]; then # 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; +elif [ "$type" == "callgrind" ]; then valgrind --tool="callgrind" build/test/unit-tests $* -elif [ "$1" == "--quiet" ]; then - shift; +elif [ "$type" == "quiet" ]; then build/test/unit-tests --catch_system_errors=no $* -elif [ "$1" == "--drd" ]; then - shift; +elif [ "$type" == "drd" ]; then valgrind --tool="drd" build/test/unit-tests $* -elif [ "$1" == "--helgrind" ]; then - shift; +elif [ "$type" == "helgrind" ]; then valgrind --tool="helgrind" build/test/unit-tests $* else ulimit -c unlimited - build/test/unit-tests --catch_system_errors=no --log_level=test_suite $* -# build/test/unit-tests --catch_system_errors=no $* + build/test/unit-tests --catch_system_errors=no $* fi