run-tests: prevent a (glob) declaration from reordering (?) lines
authorMatt Harbison <matt_harbison@yahoo.com>
Wed, 05 Apr 2017 22:00:33 -0400
changeset 31827 220d4bffd23e
parent 31826 9fce17c4a7b3
child 31828 ff60498211f3
run-tests: prevent a (glob) declaration from reordering (?) lines Previously, if a series of optional output lines marked with '(?)' had a (glob) in one of the first lines, the output would be reordered such that it came last if none of the lines were output. The (re) declaration wasn't affected, which was helpful in figuring this out. There were no tests for '(re) (?)' so add that to make sure everything plays nice.
tests/run-tests.py
tests/test-run-tests.t
--- a/tests/run-tests.py	Fri Apr 07 13:45:33 2017 +0530
+++ b/tests/run-tests.py	Wed Apr 05 22:00:33 2017 -0400
@@ -1385,7 +1385,7 @@
                 # ignore '(glob)' added to l by 'replacements'
                 if l.endswith(b" (glob)\n"):
                     l = l[:-8] + b"\n"
-                return TTest.globmatch(el[:-8], l)
+                return TTest.globmatch(el[:-8], l) or retry
             if os.altsep and l.replace(b'\\', b'/') == el:
                 return b'+glob'
         return retry
--- a/tests/test-run-tests.t	Fri Apr 07 13:45:33 2017 +0530
+++ b/tests/test-run-tests.t	Wed Apr 05 22:00:33 2017 -0400
@@ -55,7 +55,10 @@
   >   $ echo babar
   >   babar
   >   $ echo xyzzy
+  >   dont_print (?)
+  >   nothing[42]line (re) (?)
   >   never*happens (glob) (?)
+  >   more_nothing (?)
   >   xyzzy
   >   nor this (?)
   >   $ printf 'abc\ndef\nxyz\n'
@@ -326,14 +329,14 @@
   *SALT* 2 0 (glob)
   + echo xyzzy
   xyzzy
-  + echo *SALT* 6 0 (glob)
-  *SALT* 6 0 (glob)
+  + echo *SALT* 9 0 (glob)
+  *SALT* 9 0 (glob)
   + printf *abc\ndef\nxyz\n* (glob)
   abc
   def
   xyz
-  + echo *SALT* 12 0 (glob)
-  *SALT* 12 0 (glob)
+  + echo *SALT* 15 0 (glob)
+  *SALT* 15 0 (glob)
   .
   # Ran 2 tests, 0 skipped, 0 warned, 0 failed.