diff options
| author | Steven Knight <knight@baldmt.com> | 2004-04-01 00:20:09 (GMT) |
|---|---|---|
| committer | Steven Knight <knight@baldmt.com> | 2004-04-01 00:20:09 (GMT) |
| commit | 25b984647e137b2b63c2a32e791c95c7cc2fedae (patch) | |
| tree | 4aa26bcf65008ce67efbda6e1e2db9d274883379 /src/engine/SCons/Node | |
| parent | 36c526a3be47db75e1469de09da243ca66528998 (diff) | |
| download | SCons-25b984647e137b2b63c2a32e791c95c7cc2fedae.zip SCons-25b984647e137b2b63c2a32e791c95c7cc2fedae.tar.gz SCons-25b984647e137b2b63c2a32e791c95c7cc2fedae.tar.bz2 | |
Fix a bug in CVS checkouts when env.SourceCode() is called with a File, not a Directory.
Diffstat (limited to 'src/engine/SCons/Node')
| -rw-r--r-- | src/engine/SCons/Node/FS.py | 4 | ||||
| -rw-r--r-- | src/engine/SCons/Node/FSTests.py | 23 |
2 files changed, 25 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 3bf2ee4..bb13afc 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -187,7 +187,7 @@ def CachePushFunc(target, source, env): return if not fs.isdir(cachedir): - fs.mkdir(cachedir) + fs.makedirs(cachedir) tempfile = cachefile+'.tmp' try: @@ -515,6 +515,8 @@ class Base(SCons.Node.Node): def set_src_builder(self, builder): """Set the source code builder for this node.""" self.sbuilder = builder + if not self.has_builder(): + self.builder_set(builder) def src_builder(self): """Fetch the source code builder for this node. diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py index 94280f7..b1999e0 100644 --- a/src/engine/SCons/Node/FSTests.py +++ b/src/engine/SCons/Node/FSTests.py @@ -1432,30 +1432,51 @@ class has_src_builderTestCase(unittest.TestCase): f4 = fs.File('f4', sub2) f5 = fs.File('f5', sub2) f6 = fs.File('f6', sub2) + f7 = fs.File('f7', sub2) h = f1.has_src_builder() assert not h, h + h = f1.has_builder() + assert not h, h b1 = Builder(fs.File) sub1.set_src_builder(b1) test.write(['sub1', 'f2'], "sub1/f2\n") - h = f1.has_src_builder() # cached from previous call + h = f1.has_src_builder() # cached from previous call + assert not h, h + h = f1.has_builder() # cached from previous call assert not h, h h = f2.has_src_builder() assert not h, h + h = f2.has_builder() + assert not h, h h = f3.has_src_builder() assert h, h + h = f3.has_builder() + assert h, h assert f3.builder is b1, f3.builder + f7.set_src_builder(b1) + test.write(['sub2', 'SCCS', 's.f5'], "sub2/SCCS/s.f5\n") test.write(['sub2', 'RCS', 'f6,v'], "sub2/RCS/f6,v\n") h = f4.has_src_builder() assert not h, h + h = f4.has_builder() + assert not h, h h = f5.has_src_builder() assert h, h + h = f5.has_builder() + assert h, h h = f6.has_src_builder() assert h, h + h = f6.has_builder() + assert h, h + h = f7.has_src_builder() + assert h, h + h = f7.has_builder() + assert h, h class prepareTestCase(unittest.TestCase): def runTest(self): |
