[Piglit] [PATCH] deqp-integration: Handle ResourceError.

Dylan Baker baker.dylan.c at gmail.com
Tue Mar 15 23:25:58 UTC 2016


This is a previously unseen error type generated on by the Vulkan CTS
(which is dEQP based).

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---

Mark, I think this will fix the that jenkins bug we're seeing.

 framework/test/deqp.py  | 15 +++++++++------
 unittests/deqp_tests.py | 50 ++++++++++++++++++++++++++++---------------------
 2 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/framework/test/deqp.py b/framework/test/deqp.py
index 4fd51ec..80ce156 100644
--- a/framework/test/deqp.py
+++ b/framework/test/deqp.py
@@ -115,12 +115,15 @@ def iter_deqp_test_cases(case_file):
 
 @six.add_metaclass(abc.ABCMeta)
 class DEQPBaseTest(Test):
-    __RESULT_MAP = {"Pass": "pass",
-                    "Fail": "fail",
-                    "QualityWarning": "warn",
-                    "InternalError": "fail",
-                    "Crash": "crash",
-                    "NotSupported": "skip"}
+    __RESULT_MAP = {
+        "Pass": "pass",
+        "Fail": "fail",
+        "QualityWarning": "warn",
+        "InternalError": "fail",
+        "Crash": "crash",
+        "NotSupported": "skip",
+        "ResourceError": "crash",
+    }
 
     @abc.abstractproperty
     def deqp_bin(self):
diff --git a/unittests/deqp_tests.py b/unittests/deqp_tests.py
index 7143da2..7119fed 100644
--- a/unittests/deqp_tests.py
+++ b/unittests/deqp_tests.py
@@ -28,6 +28,7 @@ tests
 from __future__ import (
     absolute_import, division, print_function, unicode_literals
 )
+import textwrap
 
 try:
     from unittest import mock
@@ -191,34 +192,35 @@ class TestDEQPBaseTestIntepretResultStatus(object):
     def __init__(self):
         self.inst = None
 
-    __OUT = (
-        "dEQP Core 2014.x (0xcafebabe) starting..\n"
-        "arget implementation = 'DRM'\n"
-        "\n"
-        "Test case 'dEQP-GLES2.functional.shaders.conversions.vector_to_vector.vec3_to_ivec3_fragment'..\n"
-        "Vertex shader compile time = 0.129000 ms\n"
-        "Fragment shader compile time = 0.264000 ms\n"
-        "Link time = 0.814000 ms\n"
-        "Test case duration in microseconds = 487155 us\n"
-        "{stat} ({stat})\n"
-        "\n"
-        "DONE!\n"
-        "\n"
-        "Test run totals:\n"
-        "Passed:        {pass_}/1 (100.0%)\n"
-        "Failed:        {fail}/1 (0.0%)\n"
-        "Not supported: {supp}/1 (0.0%)\n"
-        "Warnings:      {warn}/1 (0.0%)\n"
-    )
+    __OUT = textwrap.dedent("""\
+        dEQP Core 2014.x (0xcafebabe) starting..
+          target implementation = 'DRM'
+
+        Test case 'dEQP-GLES2.functional.shaders.conversions.vector_to_vector.vec3_to_ivec3_fragment'..
+        Vertex shader compile time = 0.129000 ms
+        Fragment shader compile time = 0.264000 ms
+        Link time = 0.814000 ms
+        Test case duration in microseconds = 487155 us
+          {stat} ({stat})
+
+        DONE!
+
+        Test run totals:
+          Passed:        {pass_}/1 (100.0%)
+          Failed:        {fail}/1 (0.0%)
+          Not supported: {supp}/1 (0.0%)
+          Warnings:      {warn}/1 (0.0%)
+        Test run was ABORTED!
+    """)
 
     def __gen_stdout(self, status):
         assert status in ['Fail', 'NotSupported', 'Pass', 'QualityWarning',
-                          'InternalError', 'Crash']
+                          'InternalError', 'Crash', 'ResourceError']
 
         return self.__OUT.format(
             stat=status,
             pass_=1 if status == 'Pass' else 0,
-            fail=1 if status in ['Crash', 'Fail'] else 0,
+            fail=1 if status in ['Crash', 'Fail', 'ResourceError'] else 0,
             supp=1 if status == 'InternalError' else 0,
             warn=1 if status == 'QualityWarning' else 0,
         )
@@ -262,3 +264,9 @@ class TestDEQPBaseTestIntepretResultStatus(object):
         self.inst.result.out = self.__gen_stdout('NotSupported')
         self.inst.interpret_result()
         nt.eq_(self.inst.result.result, 'skip')
+
+    def test_resourceerror(self):
+        """test.deqp.DEQPBaseTest.interpret_result: when ResourceError in result the result is 'crash'"""
+        self.inst.result.out = self.__gen_stdout('ResourceError')
+        self.inst.interpret_result()
+        nt.eq_(self.inst.result.result, 'crash')
-- 
2.7.3



More information about the Piglit mailing list