Skip to content

Commit

Permalink
Calculate target paths correctly when workdir is set. Closes #2681.
Browse files Browse the repository at this point in the history
  • Loading branch information
jpakkane committed Jan 6, 2019
1 parent 31e1a31 commit 88071fa
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 1 deletion.
9 changes: 8 additions & 1 deletion mesonbuild/backend/backends.py
Original file line number Diff line number Diff line change
Expand Up @@ -725,7 +725,7 @@ def write_test_serialisation(self, tests, datafile):
elif isinstance(a, str):
cmd_args.append(a)
elif isinstance(a, build.Target):
cmd_args.append(self.get_target_filename(a))
cmd_args.append(self.construct_target_rel_path(a, t.workdir))
else:
raise MesonException('Bad object in test command.')
ts = TestSerialisation(t.get_name(), t.project_name, t.suite, cmd, is_cross,
Expand All @@ -734,6 +734,13 @@ def write_test_serialisation(self, tests, datafile):
arr.append(ts)
pickle.dump(arr, datafile)

def construct_target_rel_path(self, a, workdir):
if workdir is None:
return self.get_target_filename(a)
assert(os.path.isabs(workdir))
abs_path = self.get_target_filename_abs(a)
return os.path.relpath(abs_path, workdir)

def generate_depmf_install(self, d):
if self.build.dep_manifest_name is None:
return
Expand Down
2 changes: 2 additions & 0 deletions test cases/common/97 test workdir/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ exe = executable('opener', 'opener.c')

test('basic', exe, workdir : meson.source_root())
test('shouldfail', exe, should_fail : true)

subdir('subdir')
5 changes: 5 additions & 0 deletions test cases/common/97 test workdir/subdir/checker.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env python3

import sys

data = open(sys.argv[1], 'rb').read()
4 changes: 4 additions & 0 deletions test cases/common/97 test workdir/subdir/meson.build
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
exe2 = executable('dummy', '../opener.c')
test('subdir', find_program('checker.py'),
workdir : meson.source_root(),
args: [exe2])

0 comments on commit 88071fa

Please sign in to comment.