Signed-off-by: Damien Lespiau <damien.lespiau@xxxxxxxxx> --- piglit/tests/igt.tests | 125 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 piglit/tests/igt.tests diff --git a/piglit/tests/igt.tests b/piglit/tests/igt.tests new file mode 100644 index 0000000..f388492 --- /dev/null +++ b/piglit/tests/igt.tests @@ -0,0 +1,125 @@ +# +# Copyright (c) 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: +# +# This permission notice 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 AUTHOR(S) 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 os +import re +import sys +import subprocess + +from os import path +from framework.core import testBinDir, TestProfile +from framework.exectest import ExecTest + +############################################################################# +##### IGTTest: Execute an intel-gpu-tools test +##### +##### To use this, create an igt symlink in piglit/bin which points to the root +##### of the intel-gpu-tools sources with the compiled tests. Piglit will +##### automatically add all tests into the 'igt' category. +############################################################################# + +if not os.path.exists(os.path.join(testBinDir, 'igt')): + print "igt symlink not found!" + sys.exit(0) + +# Chase the piglit/bin/igt symlink to find where the tests really live. +igtTestRoot = path.join(path.realpath(path.join(testBinDir, 'igt')), 'tests') + +profile = TestProfile() + +class IGTTest(ExecTest): + def __init__(self, binary, arguments=[]): + ExecTest.__init__(self, [path.join(igtTestRoot, binary)] + arguments) + self.timeout = 60*20 # 20 minutes deadline by default + + def interpretResult(self, out, returncode, results, dmesg): + if returncode == 0: + results['result'] = 'dmesg-warn' if dmesg != '' else 'pass' + elif returncode == 77: + results['result'] = 'skip' + else: + results['result'] = 'dmesg-fail' if dmesg != '' else 'fail' + return out + def run(self, env): + env.dmesg = True + return ExecTest.run(self, env) + +def listTests(listname): + oldDir = os.getcwd() + try: + os.chdir(igtTestRoot) + proc = subprocess.Popen( + ['make', listname ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=os.environ.copy(), + universal_newlines=True + ) + out, err = proc.communicate() + returncode = proc.returncode + finally: + os.chdir(oldDir) + + lines = out.split('\n') + found_header = False + progs = "" + + for line in lines: + if found_header: + progs = line.split(" ") + break + + if "TESTLIST" in line: + found_header = True; + + return progs + +singleTests = listTests("list-single-tests") + +for test in singleTests: + profile.test_list[path.join('igt', test)] = IGTTest(test) + +def addSubTestCases(test): + proc = subprocess.Popen( + [path.join(igtTestRoot, test), '--list-subtests' ], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=os.environ.copy(), + universal_newlines=True + ) + out, err = proc.communicate() + returncode = proc.returncode + + subtests = out.split("\n") + + for subtest in subtests: + if subtest == "": + continue + profile.test_list[path.join('igt', test, subtest)] = \ + IGTTest(test, ['--run-subtest', subtest]) + +multiTests = listTests("list-multi-tests") + +for test in multiTests: + addSubTestCases(test) -- 1.8.3.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx