Mercurial > public > mercurial-scm > hg-stable
diff tests/run-tests.py @ 33952: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 | 7cab956794e4 |
children | 72b23c9452d6 |
line wrap: on
line diff
--- a/tests/run-tests.py Fri Aug 25 13:49:17 2017 -0700 +++ b/tests/run-tests.py Sun Aug 20 09:46:27 2017 -0700 @@ -1440,7 +1440,7 @@ conditions = [ c for c in m.group(2).split(b' ')] - if not self._hghave(conditions)[0]: + if not self._iftest(conditions): optional.append(i) i += 1 @@ -1474,7 +1474,7 @@ if m: conditions = [c for c in m.group(2).split(b' ')] - if self._hghave(conditions)[0]: + if self._iftest(conditions): # Don't append as optional line continue else: @@ -1555,7 +1555,7 @@ conditions = [c for c in m.group(2).split(b' ')] el = m.group(1) + b"\n" - if not self._hghave(conditions)[0]: + if not self._iftest(conditions): retry = "retry" # Not required by listed features if el.endswith(b" (esc)\n"):