tests: add test showing puzzling test output with (glob) lines
authorMartin von Zweigbergk <martinvonz@google.com>
Fri, 29 Jun 2018 11:29:03 -0700
changeset 38553 3fb46734508d
parent 38552 5a20b6090a6e
child 38554 f83600efa1ca
tests: add test showing puzzling test output with (glob) lines When using multiple (glob) lines, the test runner often moves the lines around in the output on failure. I have run into this problem many times. The added test shows one example of this. Note that it doesn't show the mismatching lines and instead shows diff hunks that appear to replace a literal by a glob, and other hunks that should clearly match. Differential Revision: https://phab.mercurial-scm.org/D3880
tests/test-run-tests.t
--- a/tests/test-run-tests.t	Tue Jul 03 15:30:22 2018 -0700
+++ b/tests/test-run-tests.t	Fri Jun 29 11:29:03 2018 -0700
@@ -120,6 +120,52 @@
   python hash seed: * (glob)
   [1]
 
+test how multiple globs gets matched with lines in output
+  $ cat > test-failure-globs.t <<EOF
+  >   $ echo "context"; echo "context"; \
+  >     echo "key: 1"; echo "value: not a"; \
+  >     echo "key: 2"; echo "value: not b"; \
+  >     echo "key: 3"; echo "value: c"; \
+  >     echo "key: 4"; echo "value: d"
+  >   context
+  >   context
+  >   key: 1
+  >   value: a
+  >   key: 2
+  >   value: b
+  >   key: 3
+  >   value: * (glob)
+  >   key: 4
+  >   value: * (glob)
+  > EOF
+  $ rt test-failure-globs.t
+  
+  --- $TESTTMP/test-failure-globs.t
+  +++ $TESTTMP/test-failure-globs.t.err
+  @@ -2,10 +2,10 @@
+     context
+     context
+     key: 1
+  -  value: a
+  +  value: * (glob)
+     key: 2
+  -  value: b
+  +  value: * (glob)
+     key: 3
+  -  value: * (glob)
+  +  value: c
+     key: 4
+  -  value: * (glob)
+  +  value: d
+  
+  ERROR: test-failure-globs.t output changed
+  !
+  Failed test-failure-globs.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: * (glob)
+  [1]
+  $ rm test-failure-globs.t
+
 test diff colorisation
 
 #if no-windows pygments
@@ -374,6 +420,7 @@
 
   $ cat .testtimes
   test-empty.t * (glob)
+  test-failure-globs.t * (glob)
   test-failure-unicode.t * (glob)
   test-failure.t * (glob)
   test-success.t * (glob)