summaryrefslogtreecommitdiffstats
path: root/test/option--D.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-06-28 05:09:59 (GMT)
committerSteven Knight <knight@baldmt.com>2003-06-28 05:09:59 (GMT)
commit6b7492bf09a6c2e49b2077cbf966915bb7eba77d (patch)
tree72d79c175b4206ccde612c95b67e7955c412959f /test/option--D.py
parent3757529b5b73fc69eff8a0709482198d45ed33c5 (diff)
downloadSCons-6b7492bf09a6c2e49b2077cbf966915bb7eba77d.zip
SCons-6b7492bf09a6c2e49b2077cbf966915bb7eba77d.tar.gz
SCons-6b7492bf09a6c2e49b2077cbf966915bb7eba77d.tar.bz2
Fix -U, -D and -d with explicit targets that start with ../.
[Updating a change that was previously not synchronized to CVS.]
Diffstat (limited to 'test/option--D.py')
-rw-r--r--test/option--D.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/test/option--D.py b/test/option--D.py
index 0bc295c..d1a118e 100644
--- a/test/option--D.py
+++ b/test/option--D.py
@@ -83,7 +83,43 @@ test.run(arguments = '-D bar', chdir = 'sub1')
test.fail_test(os.path.exists(test.workpath('sub1', 'foo.out')))
test.fail_test(not os.path.exists(test.workpath('sub2', 'bar.out')))
+# 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')
+f2 = env.Cat('f2.out', 'f2.in')
+Default(f2)
+SConscript('dir/SConscript', "env")
+""")
+test.write(['sub6', 'f1.in'], "f1.in\n")
+test.write(['sub6', 'f2.in'], "f2.in\n")
-test.pass_test()
+test.write(['sub6', 'dir', 'SConscript'], """\
+Import("env")
+f3 = env.Cat('f3.out', 'f3.in')
+env.Cat('f4.out', 'f4.in')
+Default(f3)
+""")
+
+test.write(['sub6', 'dir', 'f3.in'], "f3.in\n")
+test.write(['sub6', 'dir', 'f4.in'], "f4.in\n")
+test.run(chdir = 'sub6/dir', arguments = '-D ../f1.out')
+
+test.fail_test(not os.path.exists(test.workpath('sub6', 'f1.out')))
+test.fail_test(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()