Commit 1c61c2db authored by clayton craft's avatar clayton craft Committed by Mark Janes

deqp-test: add time limit for tests

parent ad5f639e
......@@ -70,6 +70,14 @@
<prerequisite name="mesa" hardware="builder"/>
</project>
<project name="deqp-runtime"
bisect_hardware="bdw,skl,bxt,kbl"
bisect_arch="m32,m64">
<prerequisite name="deqp" hardware="builder"/>
<prerequisite name="waffle" hardware="builder"/>
<prerequisite name="mesa" hardware="builder"/>
</project>
<project name="deqp">
<prerequisite name="mesa"/>
</project>
......@@ -268,6 +276,11 @@
hardware="snb,ivb,hsw,bdw,skl,kbl,bxt,bsw" shard="4"/>
</project>
<project name="deqp-runtime-full">
<prerequisite name="deqp-runtime" hardware="bdw,skl,kbl" shard="5"/>
<prerequisite name="deqp-runtime" hardware="bxt" shard="8"/>
</project>
<project name="glcts-full">
<prerequisite name="glcts-test" hardware="snb,ivb,hsw,bdw,skl,kbl" arch="m64" shard="2"/>
<prerequisite name="glcts-test" only_for_type="daily" hardware="hsw,bdw,skl,kbl" arch="m32"/>
......
[expected-failures]
[expected-crashes]
[fixed-tests]
[expected-failures]
[expected-crashes]
[fixed-tests]
#!/usr/bin/python
import os
import sys
import subprocess
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])),
"..", "repos", "mesa_ci"))
import build_support as bs
class SlowTimeout:
def __init__(self):
self.hardware = bs.Options().hardware
def GetDuration(self):
return 500
class DeqpRuntimeLister():
def __init__(self, binary):
self.binary = binary
self.o = bs.Options()
self.pm = bs.ProjectMap()
self.blacklist_txt = None
self.version = None
bd = self.pm.project_build_dir()
hw_prefix = self.o.hardware[:3]
if self.o.hardware == "g965":
hw_prefix = self.o.hardware
# Note: bsw has known failures that need to be resolved
# first: https://bugs.freedesktop.org/show_bug.cgi?id=104981
if hw_prefix in ['g33', 'g45', 'ilk', 'g965', 'hsw', 'byt', 'bsw']:
raise Exception(("ERROR: This platform is not supported by "
"this test"))
if "gles2" in self.binary:
self.blacklist_txt = (bd + hw_prefix +
"_expectations/gles2_unstable_tests.txt")
if "gles3" in self.binary:
self.blacklist_txt = (bd + hw_prefix +
"_expectations/gles3_unstable_tests.txt")
if "gles31" in self.binary:
self.blacklist_txt = (bd + hw_prefix +
"_expectations/gles31_unstable_tests.txt")
if "egl" in self.binary:
self.blacklist_txt = (bd + hw_prefix +
"_expectations/egl_unstable_tests.txt")
def tests(self, env):
# don't execute tests that are part of the other suite
whitelist_txt = None
cases_xml = None
if "gles2" in self.binary:
whitelist_txt = (self.pm.project_source_dir("deqp") +
"/android/cts/master/gles2-master.txt")
cases_xml = "dEQP-GLES2-cases.xml"
if "gles3" in self.binary:
whitelist_txt = (self.pm.project_source_dir("deqp") +
"/android/cts/master/gles3-master.txt")
cases_xml = "dEQP-GLES3-cases.xml"
if "gles31" in self.binary:
whitelist_txt = (self.pm.project_source_dir("deqp") +
"/android/cts/master/gles31-master.txt")
cases_xml = "dEQP-GLES31-cases.xml"
if "egl" in self.binary:
whitelist_txt = (self.pm.project_source_dir("deqp") +
"/android/cts/master/egl-master.txt")
cases_xml = "dEQP-EGL-cases.xml"
deqp_dir = os.path.dirname(self.binary)
os.chdir(deqp_dir)
cmd = [self.binary,
"--deqp-runmode=xml-caselist"]
bs.run_batch_command(cmd, env=env)
all_tests = bs.DeqpTrie()
all_tests.add_xml(cases_xml)
whitelist = bs.DeqpTrie()
whitelist.add_txt(whitelist_txt)
all_tests.filter_whitelist(whitelist)
os.chdir(self.pm.project_build_dir())
return all_tests
def blacklist(self, all_tests):
if self.blacklist_txt:
blacklist = bs.DeqpTrie()
blacklist.add_txt(self.blacklist_txt)
all_tests.filter(blacklist)
# The following test exceeds 30 seconds on all platforms, so
# we ignore it
unsupported = ["dEQP-GLES2.functional.flush_finish.wait"]
all_tests.filter(unsupported)
class DeqpRuntimeBuilder(object):
def __init__(self):
self.pm = bs.ProjectMap()
self.o = bs.Options()
self.env = {}
self.version = None
def build(self):
pass
def clean(self):
pass
def test(self):
t = bs.DeqpTester(runtime=30)
all_results = bs.DeqpTrie()
if not self.version:
self.version = bs.mesa_version()
modules = ["gles2", "gles3", "gles31"]
for module in modules:
binary = os.path.join(self.pm.build_root(), "opt/deqp/modules",
module, "deqp-" + module)
results = t.test(binary,
DeqpRuntimeLister(binary),
[],
self.env)
all_results.merge(results)
config = bs.get_conf_file(self.o.hardware, self.o.arch,
project=self.pm.current_project())
t.generate_results(all_results, bs.ConfigFilter(config, self.o))
bs.build(DeqpRuntimeBuilder(), time_limit=SlowTimeout())
[expected-failures]
[expected-crashes]
[fixed-tests]
[expected-failures]
[expected-crashes]
[fixed-tests]
[expected-failures]
[expected-crashes]
[fixed-tests]
......@@ -104,7 +104,7 @@ class GLESCTSTester(object):
mv = bs.mesa_version()
if "17.2" in mv or "17.1" in mv:
return
t = bs.DeqpTester()
t = bs.DeqpTester(timelimit=30)
results = t.test(self.pm.build_root() + "/bin/es/modules/glcts",
GLESCTSList(),
env = {"MESA_GLES_VERSION_OVERRIDE" : "3.2"})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment