diff options
Diffstat (limited to 'test/option-u.py')
-rw-r--r-- | test/option-u.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/test/option-u.py b/test/option-u.py index 2b2ad4f..82583d4 100644 --- a/test/option-u.py +++ b/test/option-u.py @@ -136,4 +136,40 @@ test.fail_test(os.path.exists(test.workpath('sub4', 'dir', 'f4b.out'))) test.fail_test(test.read(['build', 'f4a.out']) != "sub4/f4a.in") test.fail_test(test.read(['build', 'dir', 'f4b.out']) != "sub4/dir/f4b.in") +# Make sure explicit targets beginning with ../ get built. +test.subdir('sub6', ['sub6', 'dir']) + +test.write(['sub6', 'SConstruct'], """\ +def cat(env, source, target): + target = str(target[0]) + source = map(str, source) + f = open(target, "wb") + for src in source: + f.write(open(src, "rb").read()) + f.close() +env = Environment(BUILDERS={'Cat':Builder(action=cat)}) +env.Cat('f1.out', 'f1.in') +env.Cat('f2.out', 'f2.in') +SConscript('dir/SConscript', "env") +""") + +test.write(['sub6', 'f1.in'], "f1.in\n") +test.write(['sub6', 'f2.in'], "f2.in\n") + +test.write(['sub6', 'dir', 'SConscript'], """\ +Import("env") +env.Cat('f3.out', 'f3.in') +env.Cat('f4.out', 'f4.in') +""") + +test.write(['sub6', 'dir', 'f3.in'], "f3.in\n") +test.write(['sub6', 'dir', 'f4.in'], "f4.in\n") + +test.run(chdir = 'sub6/dir', arguments = '-u ../f2.out') + +test.fail_test(os.path.exists(test.workpath('sub6', 'f1.out'))) +test.fail_test(not os.path.exists(test.workpath('sub6', 'f2.out'))) +test.fail_test(os.path.exists(test.workpath('sub6', 'dir', 'f3.out'))) +test.fail_test(os.path.exists(test.workpath('sub6', 'dir', 'f4.out'))) + test.pass_test() |