testsuite: Introduce fragile modifier
authorBen Gamari <ben@smart-cactus.org>
Tue, 26 Feb 2019 15:13:44 +0000 (10:13 -0500)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Thu, 7 Mar 2019 02:48:10 +0000 (21:48 -0500)
Now since we have been a bit more stringent in testsuite cleanliness we
have been marking a lot of tests as fragile using the `skip` modifier.
However, this unfortunately means that we lose the association with the
ticket number documenting the fragility.

Here we introduce `fragile` and `fragile_for` to retain this
information.

testsuite/driver/testlib.py

index edd43fb..309a910 100644 (file)
@@ -247,6 +247,30 @@ def _expect_pass(way):
 
 # -----
 
+def fragile( bug ):
+    """
+    Indicates that the test should be skipped due to fragility documented in
+    the given ticket.
+    """
+    def helper( name, opts, bug=bug ):
+        record_broken(name, opts, bug)
+        opts.skip = True
+
+    return helper
+
+def fragile_for( name, opts, bug, ways ):
+    """
+    Indicates that the test should be skipped due to fragility in the given
+    test ways as documented in the given ticket.
+    """
+    def helper( name, opts, bug=bug, ways=ways ):
+        record_broken(name, opts, bug)
+        opts.omit_ways = ways
+
+    return helper
+
+# -----
+
 def omit_ways( ways ):
     return lambda name, opts, w=ways: _omit_ways( name, opts, w )