summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-09-25 19:08:15 (GMT)
committerSteven Knight <knight@baldmt.com>2005-09-25 19:08:15 (GMT)
commit84a9db490a2e30a4f2697f71f062569331ea4727 (patch)
treeb47726da8c18eb18a842617f30c9468ffde32122 /src
parenta267d937e2def923035642e43ce8a851ddd48cc6 (diff)
downloadSCons-84a9db490a2e30a4f2697f71f062569331ea4727.zip
SCons-84a9db490a2e30a4f2697f71f062569331ea4727.tar.gz
SCons-84a9db490a2e30a4f2697f71f062569331ea4727.tar.bz2
Fix a bug in the signature refactoring that caused some generated .h files to always get rebuilt.
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt6
-rw-r--r--src/engine/SCons/Node/FS.py7
-rw-r--r--src/engine/SCons/Node/FSTests.py25
3 files changed, 27 insertions, 11 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 049ab95..7922bcc 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -331,6 +331,12 @@ RELEASE 0.97 - XXX
somewhat more efficient in general, and may be significantly
more efficient on Windows.
+ - Minor speedups in the internal is_Dict(), is_List() and is_String()
+ functions.
+
+ - Fix a signature refactoring bug that caused Qt header files to
+ get re-generated every time.
+
From Chen Lee:
- Handle Visual Studio project and solution files in Unicode.
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py
index 1257585..ffdc1eb 100644
--- a/src/engine/SCons/Node/FS.py
+++ b/src/engine/SCons/Node/FS.py
@@ -1565,12 +1565,9 @@ class RootDir(Dir):
return _null
class NodeInfo(SCons.Node.NodeInfo):
- # The bsig attributes needs to stay here, if it's initialized in
- # __init__() then the assignment seems to overwrite any values
- # unpickled from .sconsign files.
- bsig = None
def __cmp__(self, other):
- return cmp(self.bsig, other.bsig)
+ try: return cmp(self.bsig, other.bsig)
+ except AttributeError: return 1
def update(self, node):
self.timestamp = node.get_timestamp()
self.size = node.getsize()
diff --git a/src/engine/SCons/Node/FSTests.py b/src/engine/SCons/Node/FSTests.py
index 0bd8001..60b0197 100644
--- a/src/engine/SCons/Node/FSTests.py
+++ b/src/engine/SCons/Node/FSTests.py
@@ -702,20 +702,33 @@ class NodeInfoTestCase(_tempdirTestCase):
def test___init__(self):
"""Test NodeInfo initialization"""
ni = SCons.Node.FS.NodeInfo()
- assert hasattr(ni, 'bsig')
+ assert not hasattr(ni, 'bsig')
def test___cmp__(self):
"""Test comparing NodeInfo objects"""
ni1 = SCons.Node.FS.NodeInfo()
ni2 = SCons.Node.FS.NodeInfo()
- assert cmp(ni1, ni2) == 0, "ni1 %s != ni2 %s" % (ni1, ni2)
+ msg = "cmp(%s, %s) returned %s, not %s"
+
+ c = cmp(ni1, ni2)
+ assert c == 1, msg % (ni1, ni2, c, 1)
ni1.bsig = 777
- assert cmp(ni1, ni2) != 0, "ni1 %s == ni2 %s" % (ni1, ni2)
+ c = cmp(ni1, ni2)
+ assert c == 1, msg % (ni1.bsig, ni2, c, 1)
+
+ ni2.bsig = 666
+ c = cmp(ni1, ni2)
+ assert c == 1, msg % (ni1.bsig, ni2.bsig, c, 1)
ni2.bsig = 777
- assert cmp(ni1, ni2) == 0, "ni1 %s != ni2 %s" % (ni1, ni2)
+ c = cmp(ni1, ni2)
+ assert c == 0, msg % (ni1.bsig, ni2.bsig, c, 0)
+
+ ni2.bsig = 888
+ c = cmp(ni1, ni2)
+ assert c == -1, msg % (ni1.bsig, ni2.bsig, c, -1)
def test_update(self):
"""Test updating a NodeInfo with on-disk information"""
@@ -2015,7 +2028,7 @@ class RepositoryTestCase(_tempdirTestCase):
r = fs.Rfindalldirs(['d1', d2], fs.Top)
assert r == [d1, rep1_d1, rep2_d1, rep3_d1, d2], map(str, r)
- def tttest_rexists(self):
+ def test_rexists(self):
"""Test the Entry.rexists() method"""
fs = self.fs
test = self.test
@@ -2822,7 +2835,7 @@ if __name__ == "__main__":
RepositoryTestCase,
]
for tclass in tclasses:
- names = unittest.getTestCaseNames(tclass, 'tttest_')
+ names = unittest.getTestCaseNames(tclass, 'test_')
suite.addTests(map(tclass, names))
if not unittest.TextTestRunner().run(suite).wasSuccessful():
sys.exit(1)