summaryrefslogtreecommitdiff
path: root/.gitlab-ci/gtest-runner.sh
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci/gtest-runner.sh')
-rwxr-xr-x.gitlab-ci/gtest-runner.sh75
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