summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2012-12-17 02:00:04 -0800
committerKenneth Graunke <kenneth@whitecape.org>2012-12-17 02:14:16 -0800
commit6aef32d8a409df4c73274af666ee33cfe097412a (patch)
treeda26ba9ec9d11eef19a308cfc158ccf35f90807e
parent256fb419da41613cb3f83806802ae410d2f3bd71 (diff)
lame first cut at piglit support. BROKEN due to lack of chdir.
Does not chdir to the piglit folder, so we can't read shaders...
-rw-r--r--suites/piglit.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/suites/piglit.py b/suites/piglit.py
new file mode 100644
index 0000000..2add243
--- /dev/null
+++ b/suites/piglit.py
@@ -0,0 +1,70 @@
+#
+# Copyright © 2012 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+#
+
+import re
+import shlex
+import os.path as path
+from framework.process import runProgram
+from framework.test import Test
+
+__all__ = ['init', 'makeTestList']
+
+###
+## Plugin initialization
+###
+piglit_path = None
+def init(config):
+ global piglit_path
+ try:
+ # Get the Piglit path from the configuration file
+ block = config['piglit']
+ piglit_path = block['root']
+ return True
+ except KeyError:
+ return False
+
+skip_re = re.compile(r"^PIGLIT: *{ *'result': *'skip' *}")
+pass_re = re.compile(r"^PIGLIT: *{ *'result': *'pass' *}")
+
+class PiglitTest(Test):
+ def __init__(self, test, cmd):
+ Test.__init__(self, shlex.split(cmd))
+
+ def interpretResult(self, out, err, exitcode):
+ if skip_re.search(out) is not None:
+ return 'skip'
+ elif pass_re.search(out) is not None:
+ return 'pass'
+
+ return 'fail'
+
+def makeTestList():
+ # XXX: can't handle glean yet.
+ (out, _, _, _) = runProgram([path.join(piglit_path, 'piglit-print-commands.py'), '-x', 'glean', 'tests/quick.tests'], None)
+
+ d = {}
+ for l in out.splitlines():
+ test, cmd = l.split(' ::: ')
+ d['piglit/' + test] = PiglitTest(test, cmd)
+
+ return d