gstreamer/ci/scripts/test.sh

50 lines
1.3 KiB
Bash
Raw Normal View History

#! /bin/bash
builddir="$1"
tests="$2"
if [[ -z "$builddir" || -z "$tests" ]]; then
echo "Usage: test.sh <build_directory> <test_name>"
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