[PATCH xserver v3 07/11] test: Make the piglit-running script callable with an arbitrary server.

Eric Anholt eric at anholt.net
Sun Sep 25 20:30:18 UTC 2016


v2: Check that SERVER_COMMAND is set.

Signed-off-by: Eric Anholt <eric at anholt.net>
---
 test/.gitignore                                |  1 +
 test/Makefile.am                               |  1 +
 test/scripts/{xvfb-piglit.sh => run-piglit.sh} | 16 ++++--
 test/scripts/xvfb-piglit.sh                    | 73 ++------------------------
 4 files changed, 18 insertions(+), 73 deletions(-)
 copy test/scripts/{xvfb-piglit.sh => run-piglit.sh} (83%)

diff --git a/test/.gitignore b/test/.gitignore
index c44fc827ac13..47f766c5f620 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -11,6 +11,7 @@ xfree86
 xkb
 xtest
 signal-logging
+piglit-results
 simple-xinit
 *.log
 *.trs
diff --git a/test/Makefile.am b/test/Makefile.am
index 24bfc35bc88a..cf19beca96ff 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -163,6 +163,7 @@ endif
 EXTRA_DIST = \
 	$(SCRIPT_TESTS) \
 	scripts/xinit-piglit-session.sh \
+	scripts/run-piglit.sh \
 	ddxstubs.c \
 	$(NULL)
 
diff --git a/test/scripts/xvfb-piglit.sh b/test/scripts/run-piglit.sh
similarity index 83%
copy from test/scripts/xvfb-piglit.sh
copy to test/scripts/run-piglit.sh
index b775239e34f5..11e9c1eb9883 100755
--- a/test/scripts/xvfb-piglit.sh
+++ b/test/scripts/run-piglit.sh
@@ -14,6 +14,12 @@ if test "x$PIGLIT_DIR" = "x"; then
     exit 77
 fi
 
+if test "x$PIGLIT_RESULTS_DIR" = "x"; then
+    echo "PIGLIT_RESULTS_DIR must be set to where to output piglit results."
+    # Exit as a real failure because it should always be set.
+    exit 1
+fi
+
 if test "x$XSERVER_DIR" = "x"; then
     echo "XSERVER_DIR must be set to the directory of the xserver repository."
     # Exit as a real failure because it should always be set.
@@ -26,14 +32,16 @@ if test "x$XSERVER_BUILDDIR" = "x"; then
     exit 1
 fi
 
-export PIGLIT_RESULTS_DIR=$PIGLIT_DIR/results/xvfb
+if test "x$SERVER_COMMAND" = "x"; then
+    echo "SERVER_COMMAND must be set to the server to be spawned."
+    # Exit as a real failure because it should always be set.
+    exit 1
+fi
 
 startx \
     $XSERVER_DIR/test/scripts/xinit-piglit-session.sh \
     -- \
-    $XSERVER_BUILDDIR/hw/vfb/Xvfb \
-        -noreset \
-        -screen scrn 1280x1024x24
+    $SERVER_COMMAND
 
 # Write out piglit-summaries.
 SHORT_SUMMARY=$PIGLIT_RESULTS_DIR/summary
diff --git a/test/scripts/xvfb-piglit.sh b/test/scripts/xvfb-piglit.sh
index b775239e34f5..799f2850057a 100755
--- a/test/scripts/xvfb-piglit.sh
+++ b/test/scripts/xvfb-piglit.sh
@@ -1,72 +1,7 @@
-#!/bin/sh
-
-set -e
-
-if test "x$XTEST_DIR" = "x"; then
-    echo "XTEST_DIR must be set to the directory of the xtest repository."
-    # Exit as a "skip" so make check works even without piglit.
-    exit 77
-fi
-
-if test "x$PIGLIT_DIR" = "x"; then
-    echo "PIGLIT_DIR must be set to the directory of the piglit repository."
-    # Exit as a "skip" so make check works even without piglit.
-    exit 77
-fi
-
-if test "x$XSERVER_DIR" = "x"; then
-    echo "XSERVER_DIR must be set to the directory of the xserver repository."
-    # Exit as a real failure because it should always be set.
-    exit 1
-fi
-
-if test "x$XSERVER_BUILDDIR" = "x"; then
-    echo "XSERVER_BUILDDIR must be set to the build directory of the xserver repository."
-    # Exit as a real failure because it should always be set.
-    exit 1
-fi
-
-export PIGLIT_RESULTS_DIR=$PIGLIT_DIR/results/xvfb
-
-startx \
-    $XSERVER_DIR/test/scripts/xinit-piglit-session.sh \
-    -- \
-    $XSERVER_BUILDDIR/hw/vfb/Xvfb \
+export SERVER_COMMAND="$XSERVER_DIR/hw/vfb/Xvfb \
         -noreset \
-        -screen scrn 1280x1024x24
-
-# Write out piglit-summaries.
-SHORT_SUMMARY=$PIGLIT_RESULTS_DIR/summary
-LONG_SUMMARY=$PIGLIT_RESULTS_DIR/long-summary
-$PIGLIT_DIR/piglit-summary.py -s $PIGLIT_RESULTS_DIR > $SHORT_SUMMARY
-$PIGLIT_DIR/piglit-summary.py $PIGLIT_RESULTS_DIR > $LONG_SUMMARY
-
-# Write the short summary to make check's log file.
-cat $SHORT_SUMMARY
-
-# Parse the piglit summary to decide on our exit status.
-status=0
-# "pass: 0" would mean no tests actually ran.
-if grep "pass:.*0" $SHORT_SUMMARY > /dev/null; then
-    status=1
-fi
-# Fails or crashes should be failures from make check's perspective.
-if ! grep "fail:.*0" $SHORT_SUMMARY > /dev/null; then
-    status=1
-fi
-if ! grep "crash:.*0" $SHORT_SUMMARY > /dev/null; then
-    status=1
-fi
-
-if test $status != 0; then
-    $PIGLIT_DIR/piglit-summary-html.py \
-	--overwrite \
-	$PIGLIT_RESULTS_DIR/html \
-	$PIGLIT_RESULTS_DIR
+        -screen scrn 1280x1024x24"
+export PIGLIT_RESULTS_DIR=$XSERVER_BUILDDIR/test/piglit-results/xvfb
 
-    echo "Some piglit tests failed."
-    echo "The list of failing tests can be found in $LONG_SUMMARY."
-    echo "An html page of the failing tests can be found at $PIGLIT_RESULTS_DIR/html/problems.html"
-fi
+exec $XSERVER_DIR/test/scripts/run-piglit.sh
 
-exit $status
-- 
2.9.3



More information about the xorg-devel mailing list