changeset 28701:3bce3d2fd727

run-tests: make _processoutput picky about optional globs 1ad0ddf8cccc enabled lines that were not matched to be found later in cases of jitter. Unfortunately, in this model an optional line would always jitter to the end when it is not present. That is not ideal. It would be possible to do better, by queuing all writes until the end in case an optional line jitters, but for now, it is simpler to assume optional lines have a fixed place in the stream.
author timeless <timeless@mozdev.org>
date Wed, 30 Mar 2016 09:13:47 +0000
parents 35ad5bcdeb7e
children e44f671018e3
files tests/run-tests.py tests/test-run-tests.t
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/tests/run-tests.py	Wed Mar 30 07:24:51 2016 +0000
+++ b/tests/run-tests.py	Wed Mar 30 09:13:47 2016 +0000
@@ -1160,6 +1160,7 @@
                     els = expected[pos]
 
                 i = 0
+                optional = []
                 while i < len(els):
                     el = els[i]
 
@@ -1181,11 +1182,18 @@
                     if r:
                         els.pop(i)
                         break
+                    if el and el.endswith(b" (?)\n"):
+                        optional.append(i)
                     i += 1
 
                 if r:
                     if r == "retry":
                         continue
+                    # clean up any optional leftovers
+                    for i in optional:
+                        postout.append(b'  ' + els[i])
+                    for i in reversed(optional):
+                        del els[i]
                     postout.append(b'  ' + el)
                 else:
                     if self.NEEDESCAPE(lout):
--- a/tests/test-run-tests.t	Wed Mar 30 07:24:51 2016 +0000
+++ b/tests/test-run-tests.t	Wed Mar 30 09:13:47 2016 +0000
@@ -49,7 +49,7 @@
   >   $ echo babar
   >   babar
   >   $ echo xyzzy
-  >   never happens (?)
+  >   never*happens (glob) (?)
   >   xyzzy
   >   nor this (?)
   >   $ printf 'abc\ndef\nxyz\n'