diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2012-11-30 01:50:24 -0800 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2012-11-30 01:50:24 -0800 |
commit | baa71300e92818957e357d3dcb18c147150c1126 (patch) | |
tree | ad409fbef9846f1f6e9910940df37a8405f873cf | |
parent | 76fe6d197fe4790c727ed4c08ecd8f135aa94ab0 (diff) |
Add es3conform integration.
-rw-r--r-- | robynrc.example | 6 | ||||
-rw-r--r-- | suites/es3conform.py | 80 |
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) |