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.
--- 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.