# HG changeset patch # User Matt Harbison # Date 2021-05-05 21:47:30 # 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 --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -361,7 +361,8 @@ def parselistfiles(files, listtype, warn 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 --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 @@ -1116,15 +1116,17 @@ Skips with xml 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 @@ Missing skips or blacklisted skips don't "result": "skip" } } (no-eol) + $ rm -r tests + $ echo test-failure.t > blacklist Whitelist trumps blacklist $ echo test-failure.t > whitelist