mtest: use / as path separator for ninja targets

os.path.relpath(f, wd) returns path with \ seperator on Windows, but ninja
targets always uses / separator.

See for example https://gitlab.freedesktop.org/ocrete/libnice/-/jobs/7348274.

Analyzed-by: Xavier Claessens <xavier.claessens@collabora.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
pull/8332/head
Paolo Bonzini 4 years ago committed by Xavier Claessens
parent 6c1467db27
commit 2b48d75c7e
  1. 8
      mesonbuild/mtest.py

@ -1887,6 +1887,12 @@ def list_tests(th: TestHarness) -> bool:
return not tests
def rebuild_deps(wd: str, tests: T.List[TestSerialisation]) -> bool:
def convert_path_to_target(path: str) -> str:
path = os.path.relpath(path, wd)
if os.sep != '/':
path = path.replace(os.sep, '/')
return path
if not (Path(wd) / 'build.ninja').is_file():
print('Only ninja backend is supported to rebuild tests before running them.')
return True
@ -1901,7 +1907,7 @@ def rebuild_deps(wd: str, tests: T.List[TestSerialisation]) -> bool:
intro_targets = dict() # type: T.Dict[str, T.List[str]]
for target in load_info_file(get_infodir(wd), kind='targets'):
intro_targets[target['id']] = [
os.path.relpath(f, wd)
convert_path_to_target(f)
for f in target['filename']]
for t in tests:
for d in t.depends:

Loading…
Cancel
Save