diff options
Diffstat (limited to '.gitlab-ci/gtest-runner.sh')
-rwxr-xr-x | .gitlab-ci/gtest-runner.sh | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/.gitlab-ci/gtest-runner.sh b/.gitlab-ci/gtest-runner.sh new file mode 100755 index 00000000000..c4ae1e741db --- /dev/null +++ b/.gitlab-ci/gtest-runner.sh @@ -0,0 +1,75 @@ +#!/usr/bin/env bash +# shellcheck disable=SC2086 # we want word splitting + +set -ex + +INSTALL=$PWD/install + +# Set up the driver environment. +export LD_LIBRARY_PATH=$INSTALL/lib/ + +RESULTS="$PWD/${GTEST_RESULTS_DIR:-results}" +mkdir -p "$RESULTS" + +export LIBVA_DRIVERS_PATH=$INSTALL/lib/dri/ +# libva spams driver open info by default, and that happens per testcase. +export LIBVA_MESSAGING_LEVEL=1 + +if [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then + GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt" +fi + +# Default to an empty known flakes file if it doesn't exist. +touch "$INSTALL/$GPU_VERSION-flakes.txt" + +if [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then + GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt" +fi + +if [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then + GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt" +fi + +if [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then + GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt" +fi + +set +e + +gtest-runner \ + run \ + --gtest $GTEST \ + --output ${RESULTS} \ + --jobs ${FDO_CI_CONCURRENT:-4} \ + $GTEST_SKIPS \ + --flakes $INSTALL/$GPU_VERSION-flakes.txt \ + --fraction-start ${CI_NODE_INDEX:-1} \ + --fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \ + --env "LD_PRELOAD=$TEST_LD_PRELOAD" \ + $GTEST_RUNNER_OPTIONS + +GTEST_EXITCODE=$? + +deqp-runner junit \ + --testsuite gtest \ + --results $RESULTS/failures.csv \ + --output $RESULTS/junit.xml \ + --limit 50 \ + --template "See $ARTIFACTS_BASE_URL/results/{{testcase}}.xml" + +# Report the flakes to the IRC channel for monitoring (if configured): +if [ -n "$FLAKES_CHANNEL" ]; then + python3 $INSTALL/report-flakes.py \ + --host irc.oftc.net \ + --port 6667 \ + --results $RESULTS/results.csv \ + --known-flakes $INSTALL/$GPU_VERSION-flakes.txt \ + --channel "$FLAKES_CHANNEL" \ + --runner "$CI_RUNNER_DESCRIPTION" \ + --job "$CI_JOB_ID" \ + --url "$CI_JOB_URL" \ + --branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \ + --branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}" || true +fi + +exit $GTEST_EXITCODE |