# HG changeset patch # User Matt Harbison # Date 1620251250 14400 # Node ID dff19fe2973ce04eb7908653a4351b44a6297054 # Parent 6e0af81c43b2b815d6a96427bec960072677ac46 run-tests: fix whitelist/blacklist with directories on Windows The file name is resolved with `os.path.relpath()` in the `Test` constructor, which yields `\` on Windows. That doesn't match the `/` separator when using MSYS tools to build the list, and it isn't obvious that this is the problem because directory separators can mostly be used interchangeably. The `--test-list` argument already seems to be properly handled. diff -r 6e0af81c43b2 -r dff19fe2973c tests/run-tests.py --- a/tests/run-tests.py Thu Mar 11 23:20:41 2021 -0500 +++ b/tests/run-tests.py Wed May 05 17:47:30 2021 -0400 @@ -361,7 +361,8 @@ for line in f.readlines(): line = line.split(b'#', 1)[0].strip() if line: - entries[line] = filename + # Ensure path entries are compatible with os.path.relpath() + entries[os.path.normpath(line)] = filename f.close() return entries diff -r 6e0af81c43b2 -r dff19fe2973c tests/test-run-tests.t --- a/tests/test-run-tests.t Thu Mar 11 23:20:41 2021 -0500 +++ b/tests/test-run-tests.t Wed May 05 17:47:30 2021 -0400 @@ -1116,15 +1116,17 @@ Missing skips or blacklisted skips don't count as executed: - $ echo test-failure.t > blacklist + $ mkdir tests + $ echo tests/test-failure.t > blacklist + $ cp test-failure.t tests $ rt --blacklist=blacklist --json\ - > test-failure.t test-bogus.t + > tests/test-failure.t tests/test-bogus.t running 2 tests using 1 parallel processes ss Skipped test-bogus.t: Doesn't exist Skipped test-failure.t: blacklisted # Ran 0 tests, 2 skipped, 0 failed. - $ cat report.json + $ cat tests/report.json testreport ={ "test-bogus.t": { "result": "skip" @@ -1133,6 +1135,8 @@ "result": "skip" } } (no-eol) + $ rm -r tests + $ echo test-failure.t > blacklist Whitelist trumps blacklist $ echo test-failure.t > whitelist