[Piglit] [PATCH 08/15] base.py: Extend the WindowResizeMixin to return early

Dylan Baker baker.dylan.c at gmail.com
Fri Oct 3 17:57:49 PDT 2014


In the event that we get more spurious window resizes than our threshold
(5), mark the test as fail, adds a message in out as to why it failed,
and then returns True so that Test.run() will return early.

Signed-off-by: Dylan Baker <dylanx.c.baker at intel.com>
---
 framework/test/base.py | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/framework/test/base.py b/framework/test/base.py
index 808e74e..c3234d6 100644
--- a/framework/test/base.py
+++ b/framework/test/base.py
@@ -350,8 +350,26 @@ class WindowResizeMixin(object):
 
     """
     def _run_command(self):
-        """Run a test up 5 times when window resize is detected."""
+        """Run a test up 5 times when window resize is detected.
+
+        Rerun the command up to 5 times if the window size changes, if it
+        changes 6 times mark the test as fail and return True, which will cause
+        Test.run() to return early.
+
+        """
         for _ in xrange(5):
-            super(WindowResizeMixin, self)._run_command()
-            if "Got spurious window resize" not in self.result['out']:
-                break
+            err = super(WindowResizeMixin, self)._run_command()
+            if err:
+                return err
+            elif "Got spurious window resize" not in self.result['out']:
+                return False
+
+        # If we reach this point then there has been no error, but spurious
+        # resize was detected more than 5 times. Set the result to fail, and
+        # add a message about why, and return True so that the test will exit
+        # early
+        self.result['result'] = 'fail'
+        self.result['err'] = unicode()
+        self.result['out'] = unicode('Got spurious resize more than 5 times')
+        self.result['returncode'] = None
+        return True
-- 
2.1.2



More information about the Piglit mailing list