# HG changeset patch # User Boris Feld # Date 2018-06-12 21:04:27 # Node ID b5651ae53127f6b9702ecf5e8cf5004d8fadb5a8 # Parent f9c426385853657be0082f63567a1e78a3d5474b run-tests: restrict the test cases allowed characters Most test cases in core and in extension only use `A-Za-z0-9-` but a few tests in extensions also have a `.` in their test cases names. Also add a `_` to allow all kind of case naming format. Differential Revision: https://phab.mercurial-scm.org/D3721 diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -120,7 +120,7 @@ if pygmentspresent: } class TestRunnerLexer(lexer.RegexLexer): - testpattern = r'[\w-]+\.(t|py)(#[^\s]+)?' + testpattern = r'[\w-]+\.(t|py)(#[a-zA-Z0-9_\-\.]+)?' tokens = { 'root': [ (r'^Skipped', token.Generic.Skipped, 'skipped'), @@ -2646,7 +2646,7 @@ class TestRunner(object): expanded_args.append(arg) args = expanded_args - testcasepattern = re.compile(br'([\w-]+\.t|py)(#([^\s]+))') + testcasepattern = re.compile(br'([\w-]+\.t|py)(#([a-zA-Z0-9_\-\.]+))') tests = [] for t in args: case = None 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 @@ -1643,13 +1643,13 @@ Support ignoring invalid test cases Support running complex test cases names $ cat > test-cases-advanced-cases.t <<'EOF' - > #testcases simple case-with-dashes casewith!@#$%^&*()chars + > #testcases simple case-with-dashes casewith_-.chars > $ echo $TESTCASE > simple > EOF $ cat test-cases-advanced-cases.t - #testcases simple case-with-dashes casewith!@#$%^&*()chars + #testcases simple case-with-dashes casewith_-.chars $ echo $TESTCASE simple @@ -1658,7 +1658,7 @@ Support running complex test cases names --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.case-with-dashes.err @@ -1,3 +1,3 @@ - #testcases simple case-with-dashes casewith!@#$%^&*()chars + #testcases simple case-with-dashes casewith_-.chars $ echo $TESTCASE - simple + case-with-dashes @@ -1666,17 +1666,17 @@ Support running complex test cases names ERROR: test-cases-advanced-cases.t#case-with-dashes output changed ! --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t - +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith!@#$%^&*()chars.err + +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith_-.chars.err @@ -1,3 +1,3 @@ - #testcases simple case-with-dashes casewith!@#$%^&*()chars + #testcases simple case-with-dashes casewith_-.chars $ echo $TESTCASE - simple - + casewith!@#$%^&*()chars + + casewith_-.chars - ERROR: test-cases-advanced-cases.t#casewith!@#$%^&*()chars output changed + ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed !. Failed test-cases-advanced-cases.t#case-with-dashes: output changed - Failed test-cases-advanced-cases.t#casewith!@#$%^&*()chars: output changed + Failed test-cases-advanced-cases.t#casewith_-.chars: output changed # Ran 3 tests, 0 skipped, 2 failed. python hash seed: * (glob) [1] @@ -1686,7 +1686,7 @@ Support running complex test cases names --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.case-with-dashes.err @@ -1,3 +1,3 @@ - #testcases simple case-with-dashes casewith!@#$%^&*()chars + #testcases simple case-with-dashes casewith_-.chars $ echo $TESTCASE - simple + case-with-dashes @@ -1698,19 +1698,19 @@ Support running complex test cases names python hash seed: * (glob) [1] - $ rt "test-cases-advanced-cases.t#casewith!@#$%^&*()chars" + $ rt "test-cases-advanced-cases.t#casewith_-.chars" --- $TESTTMP/anothertests/cases/test-cases-advanced-cases.t - +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith!@#$%^&*()chars.err + +++ $TESTTMP/anothertests/cases/test-cases-advanced-cases.t.casewith_-.chars.err @@ -1,3 +1,3 @@ - #testcases simple case-with-dashes casewith!@#$%^&*()chars + #testcases simple case-with-dashes casewith_-.chars $ echo $TESTCASE - simple - + casewith!@#$%^&*()chars + + casewith_-.chars - ERROR: test-cases-advanced-cases.t#casewith!@#$%^&*()chars output changed + ERROR: test-cases-advanced-cases.t#casewith_-.chars output changed ! - Failed test-cases-advanced-cases.t#casewith!@#$%^&*()chars: output changed + Failed test-cases-advanced-cases.t#casewith_-.chars: output changed # Ran 1 tests, 0 skipped, 1 failed. python hash seed: * (glob) [1]