Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 1 | #!/bin/sh |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 2 | |
| 3 | set -ex |
| 4 | |
Rob Clark | aee1c08 | 2020-08-31 09:04:24 -0700 | [diff] [blame] | 5 | DEQP_WIDTH=${DEQP_WIDTH:-256} |
| 6 | DEQP_HEIGHT=${DEQP_HEIGHT:-256} |
| 7 | DEQP_CONFIG=${DEQP_CONFIG:-rgba8888d24s8ms0} |
| 8 | DEQP_VARIANT=${DEQP_VARIANT:-master} |
| 9 | |
| 10 | DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-width=$DEQP_WIDTH --deqp-surface-height=$DEQP_HEIGHT" |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 11 | DEQP_OPTIONS="$DEQP_OPTIONS --deqp-surface-type=pbuffer" |
Rob Clark | aee1c08 | 2020-08-31 09:04:24 -0700 | [diff] [blame] | 12 | DEQP_OPTIONS="$DEQP_OPTIONS --deqp-gl-config-name=$DEQP_CONFIG" |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 13 | DEQP_OPTIONS="$DEQP_OPTIONS --deqp-visibility=hidden" |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 14 | |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 15 | if [ -z "$DEQP_VER" ]; then |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 16 | echo 'DEQP_VER must be set to something like "gles2", "gles31" or "vk" for the test run' |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 17 | exit 1 |
| 18 | fi |
| 19 | |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 20 | if [ "$DEQP_VER" = "vk" ]; then |
Samuel Pitoiset | f32bf4f | 2019-11-14 12:09:44 +0100 | [diff] [blame] | 21 | if [ -z "$VK_DRIVER" ]; then |
| 22 | echo 'VK_DRIVER must be to something like "radeon" or "intel" for the test run' |
| 23 | exit 1 |
| 24 | fi |
| 25 | fi |
| 26 | |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 27 | if [ -z "$DEQP_SKIPS" ]; then |
| 28 | echo 'DEQP_SKIPS must be set to something like "deqp-default-skips.txt"' |
| 29 | exit 1 |
| 30 | fi |
| 31 | |
Tomeu Vizoso | 92f3c51 | 2020-03-24 12:58:30 +0100 | [diff] [blame] | 32 | INSTALL=`pwd`/install |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 33 | |
| 34 | # Set up the driver environment. |
| 35 | export LD_LIBRARY_PATH=`pwd`/install/lib/ |
| 36 | export EGL_PLATFORM=surfaceless |
Eric Anholt | 6766d51 | 2020-05-26 11:18:33 -0700 | [diff] [blame] | 37 | export VK_ICD_FILENAMES=`pwd`/install/share/vulkan/icd.d/"$VK_DRIVER"_icd.`uname -m`.json |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 38 | |
| 39 | # the runner was failing to look for libkms in /usr/local/lib for some reason |
| 40 | # I never figured out. |
| 41 | export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib |
| 42 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 43 | RESULTS=`pwd`/${DEQP_RESULTS_DIR:-results} |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 44 | mkdir -p $RESULTS |
| 45 | |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 46 | # Generate test case list file. |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 47 | if [ "$DEQP_VER" = "vk" ]; then |
Rob Clark | aee1c08 | 2020-08-31 09:04:24 -0700 | [diff] [blame] | 48 | cp /deqp/mustpass/vk-$DEQP_VARIANT.txt /tmp/case-list.txt |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 49 | DEQP=/deqp/external/vulkancts/modules/vulkan/deqp-vk |
Tomeu Vizoso | 287bf5f | 2020-05-13 09:46:06 +0200 | [diff] [blame] | 50 | elif [ "$DEQP_VER" = "gles2" -o "$DEQP_VER" = "gles3" -o "$DEQP_VER" = "gles31" ]; then |
Rob Clark | aee1c08 | 2020-08-31 09:04:24 -0700 | [diff] [blame] | 51 | cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 52 | DEQP=/deqp/modules/$DEQP_VER/deqp-$DEQP_VER |
Tomeu Vizoso | 287bf5f | 2020-05-13 09:46:06 +0200 | [diff] [blame] | 53 | SUITE=dEQP |
| 54 | else |
Rob Clark | aee1c08 | 2020-08-31 09:04:24 -0700 | [diff] [blame] | 55 | cp /deqp/mustpass/$DEQP_VER-$DEQP_VARIANT.txt /tmp/case-list.txt |
Tomeu Vizoso | 287bf5f | 2020-05-13 09:46:06 +0200 | [diff] [blame] | 56 | DEQP=/deqp/external/openglcts/modules/glcts |
| 57 | SUITE=KHR |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 58 | fi |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 59 | |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 60 | # If the job is parallel, take the corresponding fraction of the caselist. |
| 61 | # Note: N~M is a gnu sed extension to match every nth line (first line is #1). |
| 62 | if [ -n "$CI_NODE_INDEX" ]; then |
| 63 | sed -ni $CI_NODE_INDEX~$CI_NODE_TOTAL"p" /tmp/case-list.txt |
| 64 | fi |
| 65 | |
Eric Anholt | 5082ac0 | 2020-04-17 12:02:37 -0700 | [diff] [blame] | 66 | if [ -n "$DEQP_CASELIST_FILTER" ]; then |
Eric Anholt | 90cf494 | 2020-05-15 17:18:12 -0700 | [diff] [blame] | 67 | sed -ni "/$DEQP_CASELIST_FILTER/p" /tmp/case-list.txt |
Eric Anholt | 5082ac0 | 2020-04-17 12:02:37 -0700 | [diff] [blame] | 68 | fi |
| 69 | |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 70 | if [ ! -s /tmp/case-list.txt ]; then |
| 71 | echo "Caselist generation failed" |
| 72 | exit 1 |
| 73 | fi |
| 74 | |
Eric Anholt | f08c810 | 2019-11-04 10:54:41 -0800 | [diff] [blame] | 75 | if [ -n "$DEQP_EXPECTED_FAILS" ]; then |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 76 | BASELINE="--baseline $INSTALL/$DEQP_EXPECTED_FAILS" |
| 77 | fi |
| 78 | |
| 79 | if [ -n "$DEQP_FLAKES" ]; then |
| 80 | FLAKES="--flakes $INSTALL/$DEQP_FLAKES" |
Eric Anholt | f08c810 | 2019-11-04 10:54:41 -0800 | [diff] [blame] | 81 | fi |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 82 | |
Eric Anholt | f08c810 | 2019-11-04 10:54:41 -0800 | [diff] [blame] | 83 | set +e |
| 84 | |
Samuel Pitoiset | 4668a08 | 2020-03-05 15:20:34 +0100 | [diff] [blame] | 85 | if [ -n "$DEQP_PARALLEL" ]; then |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 86 | JOB="--jobs $DEQP_PARALLEL" |
Eric Anholt | fd24a95 | 2020-06-26 10:59:41 -0700 | [diff] [blame] | 87 | elif [ -n "$FDO_CI_CONCURRENT" ]; then |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 88 | JOB="--jobs $FDO_CI_CONCURRENT" |
Eric Anholt | fd24a95 | 2020-06-26 10:59:41 -0700 | [diff] [blame] | 89 | else |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 90 | JOB="--jobs 4" |
Samuel Pitoiset | 4668a08 | 2020-03-05 15:20:34 +0100 | [diff] [blame] | 91 | fi |
| 92 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 93 | # If this CI lab lacks artifacts support, print the whole list of failures/flakes. |
| 94 | if [ -z "$DEQP_NO_SAVE_RESULTS" ]; then |
| 95 | SUMMARY_LIMIT="--summary-limit 0" |
| 96 | fi |
| 97 | |
| 98 | # Silence the debug output for apps triggering GL errors, since dEQP will do a lot of that. |
| 99 | export MESA_DEBUG=silent |
| 100 | |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 101 | run_cts() { |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 102 | deqp=$1 |
| 103 | caselist=$2 |
| 104 | output=$3 |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 105 | deqp-runner \ |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 106 | run \ |
Samuel Pitoiset | 16b999b | 2019-11-19 08:39:00 +0100 | [diff] [blame] | 107 | --deqp $deqp \ |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 108 | --output $RESULTS \ |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 109 | --caselist $caselist \ |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 110 | --skips $INSTALL/$DEQP_SKIPS \ |
| 111 | $BASELINE \ |
| 112 | $FLAKES \ |
Samuel Pitoiset | 4668a08 | 2020-03-05 15:20:34 +0100 | [diff] [blame] | 113 | $JOB \ |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 114 | $SUMMARY_LIMIT \ |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 115 | $DEQP_RUNNER_OPTIONS \ |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 116 | -- \ |
Tomeu Vizoso | d62dd8b | 2019-12-13 10:20:23 +0100 | [diff] [blame] | 117 | $DEQP_OPTIONS |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 118 | } |
| 119 | |
| 120 | report_flakes() { |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 121 | flakes=`grep ",Flake" $1 | sed 's|,Flake.*||g'` |
| 122 | if [ -z "$flakes" ]; then |
| 123 | return 0 |
| 124 | fi |
| 125 | |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 126 | if [ -z "$FLAKES_CHANNEL" ]; then |
| 127 | return 0 |
| 128 | fi |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 129 | |
Eric Anholt | 2637961 | 2020-05-05 12:17:49 -0700 | [diff] [blame] | 130 | # The nick needs to be something unique so that multiple runners |
| 131 | # connecting at the same time don't race for one nick and get blocked. |
| 132 | # freenode has a 16-char limit on nicks (9 is the IETF standard, but |
| 133 | # various servers extend that). So, trim off the common prefixes of the |
| 134 | # runner name, and append the job ID so that software runners with more |
| 135 | # than one concurrent job (think swrast) don't collide. For freedreno, |
| 136 | # that gives us a nick as long as db410c-N-JJJJJJJJ, and it'll be a while |
| 137 | # before we make it to 9-digit jobs (we're at 7 so far). |
| 138 | runner=`echo $CI_RUNNER_DESCRIPTION | sed 's|mesa-||' | sed 's|google-freedreno-||g'` |
| 139 | bot="$runner-$CI_JOB_ID" |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 140 | channel="$FLAKES_CHANNEL" |
| 141 | ( |
| 142 | echo NICK $bot |
| 143 | echo USER $bot unused unused :Gitlab CI Notifier |
| 144 | sleep 10 |
| 145 | echo "JOIN $channel" |
| 146 | sleep 1 |
| 147 | desc="Flakes detected in job: $CI_JOB_URL on $CI_RUNNER_DESCRIPTION" |
Eric Anholt | 2c50176 | 2020-05-05 10:44:46 -0700 | [diff] [blame] | 148 | if [ -n "$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME" ]; then |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 149 | desc="$desc on branch $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME ($CI_MERGE_REQUEST_TITLE)" |
Eric Anholt | 2c50176 | 2020-05-05 10:44:46 -0700 | [diff] [blame] | 150 | elif [ -n "$CI_COMMIT_BRANCH" ]; then |
| 151 | desc="$desc on branch $CI_COMMIT_BRANCH ($CI_COMMIT_TITLE)" |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 152 | fi |
| 153 | echo "PRIVMSG $channel :$desc" |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 154 | for flake in $flakes; do |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 155 | echo "PRIVMSG $channel :$flake" |
| 156 | done |
| 157 | echo "PRIVMSG $channel :See $CI_JOB_URL/artifacts/browse/results/" |
| 158 | echo "QUIT" |
| 159 | ) | nc irc.freenode.net 6667 > /dev/null |
| 160 | |
| 161 | } |
| 162 | |
Rob Clark | 9f422cb | 2019-11-17 12:04:50 -0800 | [diff] [blame] | 163 | # Generate junit results |
| 164 | generate_junit() { |
| 165 | results=$1 |
| 166 | echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>" |
| 167 | echo "<testsuites>" |
| 168 | echo "<testsuite name=\"$DEQP_VER-$CI_NODE_INDEX\">" |
| 169 | while read line; do |
| 170 | testcase=${line%,*} |
| 171 | result=${line#*,} |
| 172 | # avoid counting Skip's in the # of tests: |
| 173 | if [ "$result" = "Skip" ]; then |
| 174 | continue; |
| 175 | fi |
| 176 | echo "<testcase name=\"$testcase\">" |
| 177 | if [ "$result" != "Pass" ]; then |
| 178 | echo "<failure type=\"$result\">" |
| 179 | echo "$result: See $CI_JOB_URL/artifacts/results/$testcase.xml" |
| 180 | echo "</failure>" |
| 181 | fi |
| 182 | echo "</testcase>" |
| 183 | done < $results |
| 184 | echo "</testsuite>" |
| 185 | echo "</testsuites>" |
| 186 | } |
| 187 | |
Eric Anholt | ff11836 | 2020-03-05 14:35:55 -0800 | [diff] [blame] | 188 | parse_renderer() { |
| 189 | RENDERER=`grep -A1 TestCaseResult.\*info.renderer $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'` |
| 190 | VERSION=`grep -A1 TestCaseResult.\*info.version $RESULTS/deqp-info.qpa | grep '<Text' | sed 's|.*<Text>||g' | sed 's|</Text>||g'` |
| 191 | echo "Renderer: $RENDERER" |
| 192 | echo "Version: $VERSION " |
Eric Anholt | 8b221e0 | 2020-04-17 12:39:32 -0700 | [diff] [blame] | 193 | |
| 194 | if ! echo $RENDERER | grep -q $DEQP_EXPECTED_RENDERER; then |
| 195 | echo "Expected GL_RENDERER $DEQP_EXPECTED_RENDERER" |
| 196 | exit 1 |
| 197 | fi |
Eric Anholt | ff11836 | 2020-03-05 14:35:55 -0800 | [diff] [blame] | 198 | } |
| 199 | |
| 200 | check_renderer() { |
Eric Anholt | 33e0821 | 2020-05-26 10:53:05 -0700 | [diff] [blame] | 201 | echo "Capturing renderer info for GLES driver sanity checks" |
Eric Anholt | ff11836 | 2020-03-05 14:35:55 -0800 | [diff] [blame] | 202 | # If you're having trouble loading your driver, uncommenting this may help |
| 203 | # debug. |
| 204 | # export EGL_LOG_LEVEL=debug |
Tomeu Vizoso | ad3ef6d | 2020-04-01 09:17:25 +0200 | [diff] [blame] | 205 | VERSION=`echo $DEQP_VER | tr '[a-z]' '[A-Z]'` |
Tomeu Vizoso | 287bf5f | 2020-05-13 09:46:06 +0200 | [diff] [blame] | 206 | $DEQP $DEQP_OPTIONS --deqp-case=$SUITE-$VERSION.info.\* --deqp-log-filename=$RESULTS/deqp-info.qpa |
Eric Anholt | ff11836 | 2020-03-05 14:35:55 -0800 | [diff] [blame] | 207 | parse_renderer |
| 208 | } |
| 209 | |
Eric Anholt | 33e0821 | 2020-05-26 10:53:05 -0700 | [diff] [blame] | 210 | check_vk_device_name() { |
| 211 | echo "Capturing device info for VK driver sanity checks" |
| 212 | $DEQP $DEQP_OPTIONS --deqp-case=dEQP-VK.info.device --deqp-log-filename=$RESULTS/deqp-info.qpa |
| 213 | DEVICENAME=`grep deviceName $RESULTS/deqp-info.qpa | sed 's|deviceName: ||g'` |
| 214 | echo "deviceName: $DEVICENAME" |
Eric Anholt | 2d1c607 | 2020-08-13 15:10:18 -0700 | [diff] [blame] | 215 | if [ -n "$DEQP_EXPECTED_RENDERER" -a "x$DEVICENAME" != "x$DEQP_EXPECTED_RENDERER" ]; then |
Eric Anholt | 33e0821 | 2020-05-26 10:53:05 -0700 | [diff] [blame] | 216 | echo "Expected deviceName $DEQP_EXPECTED_RENDERER" |
| 217 | exit 1 |
| 218 | fi |
| 219 | } |
| 220 | |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 221 | # wrapper to supress +x to avoid spamming the log |
| 222 | quiet() { |
| 223 | set +x |
| 224 | "$@" |
| 225 | set -x |
| 226 | } |
| 227 | |
Tomeu Vizoso | ad3ef6d | 2020-04-01 09:17:25 +0200 | [diff] [blame] | 228 | if [ "$GALLIUM_DRIVER" = "virpipe" ]; then |
| 229 | # deqp is to use virpipe, and virgl_test_server llvmpipe |
| 230 | export GALLIUM_DRIVER="$GALLIUM_DRIVER" |
| 231 | |
Tomeu Vizoso | 2102d5e | 2020-05-12 10:18:48 +0200 | [diff] [blame] | 232 | VTEST_ARGS="--use-egl-surfaceless" |
| 233 | if [ "$VIRGL_HOST_API" = "GLES" ]; then |
| 234 | VTEST_ARGS="$VTEST_ARGS --use-gles" |
| 235 | fi |
| 236 | |
Tomeu Vizoso | ad3ef6d | 2020-04-01 09:17:25 +0200 | [diff] [blame] | 237 | GALLIUM_DRIVER=llvmpipe \ |
| 238 | GALLIVM_PERF="nopt,no_filter_hacks" \ |
Tomeu Vizoso | 2102d5e | 2020-05-12 10:18:48 +0200 | [diff] [blame] | 239 | virgl_test_server $VTEST_ARGS >$RESULTS/vtest-log.txt 2>&1 & |
Tomeu Vizoso | ad3ef6d | 2020-04-01 09:17:25 +0200 | [diff] [blame] | 240 | |
| 241 | sleep 1 |
| 242 | fi |
| 243 | |
Eric Anholt | 33e0821 | 2020-05-26 10:53:05 -0700 | [diff] [blame] | 244 | if [ $DEQP_VER = vk ]; then |
| 245 | quiet check_vk_device_name |
| 246 | else |
Eric Anholt | ff11836 | 2020-03-05 14:35:55 -0800 | [diff] [blame] | 247 | quiet check_renderer |
| 248 | fi |
| 249 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 250 | RESULTS_CSV=$RESULTS/results.csv |
| 251 | FAILURES_CSV=$RESULTS/failures.csv |
Eric Anholt | 951e101 | 2020-04-17 12:58:59 -0700 | [diff] [blame] | 252 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 253 | run_cts $DEQP /tmp/case-list.txt $RESULTS_CSV |
Eric Anholt | 46daaca | 2019-06-28 16:35:32 -0700 | [diff] [blame] | 254 | DEQP_EXITCODE=$? |
| 255 | |
Tomeu Vizoso | 7455403 | 2020-07-28 08:22:34 +0200 | [diff] [blame] | 256 | echo "System load: $(cut -d' ' -f1-3 < /proc/loadavg)" |
| 257 | echo "# of CPU cores: $(cat /proc/cpuinfo | grep processor | wc -l)" |
| 258 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 259 | # Remove the shader cache, no need to include in the artifacts. |
| 260 | find $RESULTS -name \*.shader_cache | xargs rm -f |
| 261 | |
Eric Anholt | 7f3f9b2 | 2020-02-19 10:29:32 -0800 | [diff] [blame] | 262 | # junit is disabled, because it overloads gitlab.freedesktop.org to parse it. |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 263 | # quiet generate_junit $RESULTS_CSV > $RESULTS/results.xml |
Rob Clark | 9f422cb | 2019-11-17 12:04:50 -0800 | [diff] [blame] | 264 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 265 | # Turn up to the first 50 individual test QPA files from failures or flakes into |
| 266 | # XML results you can view from the browser. |
| 267 | qpas=`find $RESULTS -name \*.qpa -a ! -name deqp-info.qpa` |
| 268 | if [ -n "$qpas" ]; then |
| 269 | shard_qpas=`echo "$qpas" | grep dEQP- | head -n 50` |
| 270 | for qpa in $shard_qpas; do |
| 271 | xml=`echo $qpa | sed 's|\.qpa|.xml|'` |
| 272 | /deqp/executor/testlog-to-xml $qpa $xml |
| 273 | done |
Rob Clark | fdaf777 | 2019-11-17 11:33:01 -0800 | [diff] [blame] | 274 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 275 | cp /deqp/testlog.css "$RESULTS/" |
| 276 | cp /deqp/testlog.xsl "$RESULTS/" |
Eric Anholt | 30da82c | 2020-08-19 10:30:12 -0700 | [diff] [blame] | 277 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 278 | # Remove all the QPA files (extracted or not) now that we have the XML we want. |
| 279 | echo $qpas | xargs rm -f |
Eric Anholt | 7859eb1 | 2019-09-12 12:34:50 -0700 | [diff] [blame] | 280 | fi |
Rob Clark | 59ed90f | 2019-11-17 11:16:09 -0800 | [diff] [blame] | 281 | |
Eric Anholt | bf29daa | 2020-10-29 10:29:28 -0700 | [diff] [blame] | 282 | # Report the flakes to the IRC channel for monitoring (if configured): |
| 283 | quiet report_flakes $RESULTS_CSV |
| 284 | |
Rob Clark | 59ed90f | 2019-11-17 11:16:09 -0800 | [diff] [blame] | 285 | exit $DEQP_EXITCODE |