summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2012-11-30 01:50:24 -0800
committerKenneth Graunke <kenneth@whitecape.org>2012-11-30 01:50:24 -0800
commitbaa71300e92818957e357d3dcb18c147150c1126 (patch)
treead409fbef9846f1f6e9910940df37a8405f873cf
parent76fe6d197fe4790c727ed4c08ecd8f135aa94ab0 (diff)
Add es3conform integration.
-rw-r--r--robynrc.example6
-rw-r--r--suites/es3conform.py80
2 files changed, 83 insertions, 3 deletions
diff --git a/robynrc.example b/robynrc.example
index 708e3f4..b5af43b 100644
--- a/robynrc.example
+++ b/robynrc.example
@@ -1,11 +1,11 @@
[piglit]
-basedir = /home/kwg/Projects/piglit
+root = /home/kwg/Projects/piglit
[es2conform]
-basedir = /home/kwg/Projects/ogles2conform/GTF_ES/glsl/GTF
+root = /home/kwg/Projects/ogles2conform/GTF_ES/glsl/GTF
[es3conform]
-basedir = /home/kwg/Projects/gles3conform/GTF_ES/glsl/GTF
+root = /home/kwg/Projects/gles3conform/GTF_ES/glsl/GTF
[oglconform]
binary = /home/kwg/Projects/oglconform/dump/linux/debug64/OGLconform/oglconform64
diff --git a/suites/es3conform.py b/suites/es3conform.py
new file mode 100644
index 0000000..aaa2e7b
--- /dev/null
+++ b/suites/es3conform.py
@@ -0,0 +1,80 @@
+#
+# 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
+
+from os import path
+
+from framework.test import Test
+
+#############################################################################
+##### Plugin Initialization
+#############################################################################
+gtf_root = None
+config_id = None
+def init(config):
+ global gtf_root
+ global config_id
+ try:
+ # Get the GTF binary path from the configuration file
+ block = config['es3conform']
+ gtf_root = block['root']
+ config_id = block.get('config_id', 77)
+ return True
+ except KeyError:
+ return False
+
+#############################################################################
+##### GTFTest: Execute a sub-test of the Khronos ES 3.0 Conformance suite.
+#############################################################################
+class GTFTest(Test):
+ pass_re = re.compile(r'Conformance PASSED all 1 tests')
+
+ def __init__(self, test):
+ Test.__init__(self, [path.join(gtf_root, 'GTF'), '-id=' + config_id, '-width=113', '-height=47', '-run=' + test])
+
+ def interpretResult(self, out, err, exitcode):
+ if self.pass_re.search(out) is not None:
+ return 'pass'
+ return 'fail'
+
+def populateTests(runfile, tests):
+ "Read a .run file, adding any .test files to the profile"
+ with open(runfile, 'r') as f:
+ for line in f.readlines():
+ # Ignore comments and whitespace
+ line = line.strip()
+ if line.startswith('#') or line == '':
+ continue
+
+ newpath = path.join(path.dirname(runfile), line)
+ if line.endswith('.run'):
+ populateTests(newpath, tests)
+ else:
+ # Add the .test file
+ tests['es3conform/' + path.relpath(newpath, gtf_root)] = GTFTest(newpath)
+ return tests
+
+def makeTestList():
+ tests = {}
+ return populateTests(path.join(gtf_root, 'mustpass_es30.run'), tests)