# HG changeset patch # User Matt Mackall # Date 2014-08-06 15:34:54 # Node ID 769198c6a62d1a829b62101094326d8b1bffea41 # Parent a06172e85fd4d605c49bd26df48549d4130747f2 run-tests: add #require to abort full test This allows nuking a bunch of ugly hghave || exit 80 lines. diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -810,7 +810,15 @@ class TTest(Test): for n, l in enumerate(lines): if not l.endswith('\n'): l += '\n' - if l.startswith('#if'): + if l.startswith('#require'): + lsplit = l.split() + if len(lsplit) < 2 or lsplit[0] != '#require': + after.setdefault(pos, []).append(' !!! invalid #require\n') + if not self._hghave(lsplit[1:]): + script = ["exit 80\n"] + break + after.setdefault(pos, []).append(l) + elif l.startswith('#if'): lsplit = l.split() if len(lsplit) < 2 or lsplit[0] != '#if': after.setdefault(pos, []).append(' !!! invalid #if\n') diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t --- a/tests/test-run-tests.t +++ b/tests/test-run-tests.t @@ -309,7 +309,7 @@ Skips ================ $ cat > test-skip.t < $ echo xyzzy - > $ exit 80 + > #require false > EOF $ $TESTDIR/run-tests.py --with-hg=`which hg` --nodiff !.s