summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Node
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-10-18 19:22:25 (GMT)
committerSteven Knight <knight@baldmt.com>2003-10-18 19:22:25 (GMT)
commite48bef4f0520f04d71dfa2654621f3aa8a4fabe9 (patch)
treeeb654ea23be6a82f3a29d8b451e652d9cd2e883b /src/engine/SCons/Node
parent528ebad33f8ecbe8401ef779ce64648a7de0851a (diff)
downloadSCons-e48bef4f0520f04d71dfa2654621f3aa8a4fabe9.zip
SCons-e48bef4f0520f04d71dfa2654621f3aa8a4fabe9.tar.gz
SCons-e48bef4f0520f04d71dfa2654621f3aa8a4fabe9.tar.bz2
Allow SConsignFile() to take a dbm module argument; portability fixes. (Ralf W. Grosse-Kunstleve) Make ParseConfig() and env.Append() work regardless of initial construction variable values. Make new Dir() support work with empty directories and timestamps. Make the new Queue-based Job implementation portable to Python 1.5.2.
Diffstat (limited to 'src/engine/SCons/Node')
-rw-r--r--src/engine/SCons/Node/FS.py4
-rw-r--r--src/engine/SCons/Node/FSTests.py21
2 files changed, 23 insertions, 2 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index d93a6a4..b183a88 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -912,7 +912,7 @@ class DummyExecutor:
def get_contents(self):
return ''
def get_timestamp(self):
- return None
+ return 0
class Dir(Base):
"""A class for directories in a file system.
@@ -1148,7 +1148,7 @@ class Dir(Base):
def get_timestamp(self):
"""Return the latest timestamp from among our children"""
- stamp = None
+ stamp = 0
for kid in self.children(None):
if kid.get_timestamp() > stamp:
stamp = kid.get_timestamp()
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 53e2013..2237959 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -985,6 +985,27 @@ class FSTestCase(unittest.TestCase):
finally:
test.unlink("tstamp")
+ test.subdir('tdir1')
+ d = fs.Dir('tdir1')
+ t = d.get_timestamp()
+ assert t == 0, "expected 0, got %s" % str(t)
+
+ test.subdir('tdir2')
+ d = fs.Dir('tdir2')
+ f1 = test.workpath('tdir2', 'file1')
+ f2 = test.workpath('tdir2', 'file2')
+ test.write(f1, 'file1\n')
+ test.write(f2, 'file2\n')
+ fs.File(f1)
+ fs.File(f2)
+ current_time = float(int(time.time() / 2) * 2)
+ t1 = current_time - 4.0
+ t2 = current_time - 2.0
+ os.utime(f1, (t1 - 2.0, t1))
+ os.utime(f2, (t2 - 2.0, t2))
+ t = d.get_timestamp()
+ assert t == t2, "expected %f, got %f" % (t2, t)
+
#XXX test get_prevsiginfo()
skey = fs.Entry('eee.x').scanner_key()