#! /bin/bash builddir="$1" tests="$2" if [[ -z "$builddir" || -z "$tests" ]]; then echo "Usage: test.sh " exit 1 fi set -eux _jobs=$(nproc || sysctl -n hw.ncpu) jobs="${FDO_CI_CONCURRENT:-$_jobs}" timeout="${TIMEOUT_FACTOR:="2"}" validate="${EXTRA_VALIDATE_ARGS:=""}" parent="${CI_PROJECT_DIR:-$(pwd)}" # Put the runtime dir inside CI_PROJECT_DIR or in /tmp if we are running locally export XDG_RUNTIME_DIR="$(mktemp -p "${CI_PROJECT_DIR:-/tmp}" -d xdg-runtime-XXXXXX)" echo "-> Running $tests" # Disable all cpu extensions post AVX to match what valgrind supports # https://github.com/openssl/openssl/blob/master/NOTES-VALGRIND.md export OPENSSL_ia32cap=":0" # Force Software rendering for GL and Vulkan so the tests run locally # like they would do in the CI. export LIBGL_ALWAYS_SOFTWARE="true" # This the hardcoded value for llvmpipe export MESA_VK_DEVICE_SELECT="10005:0" ./gst-env.py \ "--builddir=$builddir" \ gst-validate-launcher "$tests" \ --jobs "$jobs" \ --check-bugs \ --dump-on-failure \ --mute \ --shuffle \ --no-display \ --validate-generate-expectations=disabled \ --meson-no-rebuild \ --timeout-factor "$timeout" \ --fail-on-testlist-change \ -l "$parent/validate-logs/" \ --xunit-file "$parent/validate-logs/xunit.xml" \ $validate