Mercurial > hg-stable
diff tests/test-run-tests.t @ 32998:8dc62c97a665
run-tests: do not prompt changes (-i) if a race condition is detected
The race condition is like:
1. run-tests.py reads test-a.t as reference output, content A
2. run-tests.py runs the test (which could be content B, another race
condition fixed by the next patch, but assume it's content A here)
3. something changes test-a.t to content C
4. run-tests.py compares test output (content D) with content A
5. with "-i", run-tests.py prompts diff(A, D), while the file has content
C instead of A at this time
This patch detects the above case and tell the user to rerun the test if
they want to apply test changes.
author | Jun Wu <quark@fb.com> |
---|---|
date | Wed, 21 Jun 2017 01:05:20 -0700 |
parents | 5af78c524f34 |
children | 573baab2a797 |
line wrap: on
line diff
--- a/tests/test-run-tests.t Tue Jun 20 23:22:38 2017 -0700 +++ b/tests/test-run-tests.t Wed Jun 21 01:05:20 2017 -0700 @@ -641,6 +641,33 @@ $ echo 'saved backup bundle to $TESTTMP/foo.hg' saved backup bundle to $TESTTMP/*.hg (glob)< +Race condition - test file was modified when test is running + + $ TESTRACEDIR=`pwd` + $ export TESTRACEDIR + $ cat > test-race.t <<EOF + > $ echo 1 + > $ echo "# a new line" >> $TESTRACEDIR/test-race.t + > EOF + + $ rt -i test-race.t + + --- $TESTTMP/test-race.t + +++ $TESTTMP/test-race.t.err + @@ -1,2 +1,3 @@ + $ echo 1 + + 1 + $ echo "# a new line" >> $TESTTMP/test-race.t + Reference output has changed (run again to prompt changes) + ERROR: test-race.t output changed + ! + Failed test-race.t: output changed + # Ran 1 tests, 0 skipped, 1 failed. + python hash seed: * (glob) + [1] + + $ rm test-race.t + (reinstall) $ mv backup test-failure.t