gitlab-ci/deqp: generate junit results
authorRob Clark <robdclark@chromium.org>
Sun, 17 Nov 2019 20:04:50 +0000 (12:04 -0800)
committerRob Clark <robdclark@chromium.org>
Fri, 22 Nov 2019 21:48:29 +0000 (13:48 -0800)
Signed-off-by: Rob Clark <robdclark@chromium.org>
Acked-by: Eric Engestrom <eric.engestrom@intel.com>
.gitlab-ci.yml
.gitlab-ci/deqp-runner.sh

index 995bf5b278adf715c6aac2f39f18bdaf890aab26..52da56863ca4233ae40504312a7e7ecf7a338450 100644 (file)
@@ -514,6 +514,9 @@ piglit-glslparser+quick_shader:
     DEQP_SKIPS: deqp-default-skips.txt
   script:
     - ./artifacts/deqp-runner.sh
+  artifacts:
+    reports:
+      junit: results/results.xml
 
 test-llvmpipe-gles2:
   variables:
index 044ff5981ad6eb3fe551c43ec89a11d039d210ed..b8b63b88161ecfb202ef26dc35d3c82f74d01ca2 100755 (executable)
@@ -136,6 +136,31 @@ extract_xml_results() {
     done
 }
 
+# Generate junit results
+generate_junit() {
+    results=$1
+    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+    echo "<testsuites>"
+    echo "<testsuite name=\"$DEQP_VER-$CI_NODE_INDEX\">"
+    while read line; do
+        testcase=${line%,*}
+        result=${line#*,}
+        # avoid counting Skip's in the # of tests:
+        if [ "$result" = "Skip" ]; then
+            continue;
+        fi
+        echo "<testcase name=\"$testcase\">"
+        if [ "$result" != "Pass" ]; then
+            echo "<failure type=\"$result\">"
+            echo "$result: See $CI_JOB_URL/artifacts/results/$testcase.xml"
+            echo "</failure>"
+        fi
+        echo "</testcase>"
+    done < $results
+    echo "</testsuite>"
+    echo "</testsuites>"
+}
+
 # wrapper to supress +x to avoid spamming the log
 quiet() {
     set +x
@@ -146,6 +171,8 @@ quiet() {
 run_cts /tmp/case-list.txt $RESULTS/cts-runner-results.txt
 DEQP_EXITCODE=$?
 
+quiet generate_junit $RESULTS/cts-runner-results.txt > $RESULTS/results.xml
+
 if [ $DEQP_EXITCODE -ne 0 ]; then
     # preserve caselist files in case of failures:
     cp /tmp/cts_runner.*.txt $RESULTS/