# HG changeset patch # User Martin von Zweigbergk # Date 2018-01-05 19:53:33 # Node ID f04d16bef2c71986f256a7bf2c97163d726d4909 # Parent ffd7b7cd309ba75d977b9c1f6f6b7103f5f3a2ef tests: make #testcase available as env var in test It can be useful for e.g. helper functions to behave differently depending on which test case is being executed. This patch helps with that by making the #testcase case available as a TESTCASE environment variable. Differential Revision: https://phab.mercurial-scm.org/D1816 diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1334,6 +1334,9 @@ class TTest(Test): script.append(b'alias hg="%s"\n' % self._hgcommand) if os.getenv('MSYSTEM'): script.append(b'alias pwd="pwd -W"\n') + if self._case: + script.append(b'TESTCASE=%s\n' % shellquote(self._case)) + script.append(b'export TESTCASE\n') n = 0 for n, l in enumerate(lines): 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 @@ -1533,6 +1533,26 @@ Test cases in .t files python hash seed: * (glob) [1] +Test TESTCASE variable + + $ cat > test-cases-ab.t <<'EOF' + > $ dostuff() { + > > echo "In case $TESTCASE" + > > } + > #testcases A B + > #if A + > $ dostuff + > In case A + > #endif + > #if B + > $ dostuff + > In case B + > #endif + > EOF + $ rt test-cases-ab.t + .. + # Ran 2 tests, 0 skipped, 0 failed. + Test automatic pattern replacement $ cat << EOF >> common-pattern.py