Added regression test for issue #1249
authorgaryo <garyo@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 11 Dec 2008 03:12:25 +0000 (03:12 +0000)
committergaryo <garyo@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 11 Dec 2008 03:12:25 +0000 (03:12 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@3824 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Defaults.py
test/Mkdir.py

index 5d78215d001aff4fbf23a8a8ae01881ee9858bff..4a1bcde8bf7321066ea6059735db6919aec5ed58 100644 (file)
@@ -226,7 +226,7 @@ def mkdir_func(dest):
         except os.error, e:
             p = str(entry)
             if e[0] == errno.EEXIST and os.path.isdir(str(entry)):
-                pass
+                pass            # not an error if already exists
             else:
                 raise
 
index e6aeadca7c009ab644e1bcc096320328fa4d7f6f..144c9a6ced8061d4e4ee6c4829e2515dfcf4c9b8 100644 (file)
@@ -34,7 +34,7 @@ import TestSCons
 
 test = TestSCons.TestSCons()
 
-test.subdir('work1', 'work2')
+test.subdir('work1', 'work2', 'work3')
 
 test.write(['work1', 'SConstruct'], """
 Execute(Mkdir('d1'))
@@ -152,4 +152,40 @@ test.run(chdir = 'work2', arguments = 'hello/file2.out output')
 
 test.must_match(['work2', 'output'], "work2/file1.in\nwork2/file2.in\n")
 
+
+#----------------------------------------
+# Regression test for bug #1249
+
+test.subdir(['work3', 'sub1'], ['work3', 'sub1', 'sub11'])
+
+test.write(['work3', 'SConstruct'], """\
+#/SConstruct ------------------------------------------
+import os
+env = Environment(ENV = os.environ)
+BuildDir('build', 'sub1', duplicate=0)
+base = '#build/sub1'
+Export('env base')
+SConscript('sub1/SConscript', exports='env')
+""")
+
+test.write(['work3', 'sub1', 'SConscript'], """\
+#/sub1/SConscript ----------------------------------
+Import ('env base')
+test1 = base + '/test1'
+Export ('env test1')
+env.Command(Dir(test1), '', Mkdir('$TARGET'))
+SConscript('sub11/SConscript')
+""")
+
+test.write(['work3', 'sub1', 'sub11', 'SConscript'], """\
+#/sub1/sub11/SConscript-------------------------
+Import('env test1')
+test11 = test1 + '/test11'
+print 'test11 = ' + test11
+env.Command(Dir(test11), '', Mkdir('$TARGET'))
+""")
+
+test.run(chdir = 'work3', arguments = '')
+
 test.pass_test()
+