17ec681f3Smrg#!/bin/sh
27ec681f3Smrg
37ec681f3Smrgset -ex
47ec681f3Smrg
57ec681f3SmrgINSTALL=`pwd`/install
67ec681f3Smrg
77ec681f3Smrg# Set up the driver environment.
87ec681f3Smrgexport LD_LIBRARY_PATH=`pwd`/install/lib/
97ec681f3Smrgexport LIBVA_DRIVERS_PATH=`pwd`/install/lib/dri/
107ec681f3Smrg# libva spams driver open info by default, and that happens per testcase.
117ec681f3Smrgexport LIBVA_MESSAGING_LEVEL=1
127ec681f3Smrg
137ec681f3Smrgif [ -e "$INSTALL/$GPU_VERSION-fails.txt" ]; then
147ec681f3Smrg    GTEST_RUNNER_OPTIONS="$GTEST_RUNNER_OPTIONS --baseline $INSTALL/$GPU_VERSION-fails.txt"
157ec681f3Smrgfi
167ec681f3Smrg
177ec681f3Smrg# Default to an empty known flakes file if it doesn't exist.
187ec681f3Smrgtouch $INSTALL/$GPU_VERSION-flakes.txt
197ec681f3Smrg
207ec681f3Smrgif [ -n "$GALLIUM_DRIVER" ] && [ -e "$INSTALL/$GALLIUM_DRIVER-skips.txt" ]; then
217ec681f3Smrg    GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GALLIUM_DRIVER-skips.txt"
227ec681f3Smrgfi
237ec681f3Smrg
247ec681f3Smrgif [ -n "$DRIVER_NAME" ] && [ -e "$INSTALL/$DRIVER_NAME-skips.txt" ]; then
257ec681f3Smrg    GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$DRIVER_NAME-skips.txt"
267ec681f3Smrgfi
277ec681f3Smrg
287ec681f3Smrgif [ -e "$INSTALL/$GPU_VERSION-skips.txt" ]; then
297ec681f3Smrg    GTEST_SKIPS="$GTEST_SKIPS --skips $INSTALL/$GPU_VERSION-skips.txt"
307ec681f3Smrgfi
317ec681f3Smrg
327ec681f3Smrgset +e
337ec681f3Smrg
347ec681f3Smrggtest-runner \
357ec681f3Smrg    run \
367ec681f3Smrg    --gtest $GTEST \
377ec681f3Smrg    --output ${GTEST_RESULTS_DIR:-results} \
387ec681f3Smrg    --jobs ${FDO_CI_CONCURRENT:-4} \
397ec681f3Smrg    $GTEST_SKIPS \
407ec681f3Smrg    --flakes $INSTALL/$GPU_VERSION-flakes.txt \
417ec681f3Smrg    --fraction-start ${CI_NODE_INDEX:-1} \
427ec681f3Smrg    --fraction $((${CI_NODE_TOTAL:-1} * ${GTEST_FRACTION:-1})) \
437ec681f3Smrg    --env "LD_PRELOAD=$TEST_LD_PRELOAD" \
447ec681f3Smrg    $GTEST_RUNNER_OPTIONS
457ec681f3Smrg
467ec681f3SmrgGTEST_EXITCODE=$?
477ec681f3Smrg
487ec681f3Smrgdeqp-runner junit \
497ec681f3Smrg   --testsuite gtest \
507ec681f3Smrg   --results $RESULTS/failures.csv \
517ec681f3Smrg   --output $RESULTS/junit.xml \
527ec681f3Smrg   --limit 50 \
537ec681f3Smrg   --template "See https://$CI_PROJECT_ROOT_NAMESPACE.pages.freedesktop.org/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/results/{{testcase}}.xml"
547ec681f3Smrg
557ec681f3Smrg# Report the flakes to the IRC channel for monitoring (if configured):
567ec681f3Smrgif [ -n "$FLAKES_CHANNEL" ]; then
577ec681f3Smrg  python3 $INSTALL/report-flakes.py \
587ec681f3Smrg         --host irc.oftc.net \
597ec681f3Smrg         --port 6667 \
607ec681f3Smrg         --results $RESULTS/results.csv \
617ec681f3Smrg         --known-flakes $INSTALL/$GPU_VERSION-flakes.txt \
627ec681f3Smrg         --channel "$FLAKES_CHANNEL" \
637ec681f3Smrg         --runner "$CI_RUNNER_DESCRIPTION" \
647ec681f3Smrg         --job "$CI_JOB_ID" \
657ec681f3Smrg         --url "$CI_JOB_URL" \
667ec681f3Smrg         --branch "${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:-$CI_COMMIT_BRANCH}" \
677ec681f3Smrg         --branch-title "${CI_MERGE_REQUEST_TITLE:-$CI_COMMIT_TITLE}"
687ec681f3Smrgfi
697ec681f3Smrg
707ec681f3Smrgexit $GTEST_EXITCODE
71