Mercurial > hg
comparison tests/test-run-tests.t @ 33934:6cc8f848b4c3
run-tests: make per-line condition support testcase names
7340465bd added multiple test cases support. The latter has a problem -
output lines cannot be made conditional with `#if`:
```
# COUNTEREXAMPLE: DOES NOT WORK
#testcases A B
$ command-foo
common ouput
#if A
A's ouput
#else
B's ouput
#endif
common ouput
```
That's not trivial to fix (even if it works in test, `run-tests.py -i` may
be suboptimal because diff algorithm does not know how to skip the `#if`
lines, even if it does, it may have trouble figuring out whether a changed
line belongs to inside a `#if` block or outside).
Matching output lines conditionally is useful. 4eec2f04a added per-line
condition support for hghave. This patch extends that to also support test
case names.
Differential Revision: https://phab.mercurial-scm.org/D466
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 20 Aug 2017 09:46:27 -0700 |
parents | 81b12f69ef5b |
children | 40313c63da87 |
comparison
equal
deleted
inserted
replaced
33933:39d253d088a9 | 33934:6cc8f848b4c3 |
---|---|
820 #endif | 820 #endif |
821 #if b | 821 #if b |
822 $ echo 2 | 822 $ echo 2 |
823 2 | 823 2 |
824 #endif | 824 #endif |
825 | |
826 $ cat >> test-cases.t <<'EOF' | |
827 > #if a | |
828 > $ NAME=A | |
829 > #else | |
830 > $ NAME=B | |
831 > #endif | |
832 > $ echo $NAME | |
833 > A (a !) | |
834 > B (b !) | |
835 > EOF | |
836 $ rt test-cases.t | |
837 .. | |
838 # Ran 2 tests, 0 skipped, 0 failed. | |
825 | 839 |
826 $ rm test-cases.t | 840 $ rm test-cases.t |
827 | 841 |
828 (reinstall) | 842 (reinstall) |
829 $ mv backup test-failure.t | 843 $ mv backup test-failure.t |