diff options
author | Steven Knight <knight@baldmt.com> | 2005-09-25 19:08:15 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2005-09-25 19:08:15 (GMT) |
commit | 84a9db490a2e30a4f2697f71f062569331ea4727 (patch) | |
tree | b47726da8c18eb18a842617f30c9468ffde32122 /src | |
parent | a267d937e2def923035642e43ce8a851ddd48cc6 (diff) | |
download | SCons-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.txt | 6 | ||||
-rw-r--r-- | src/engine/SCons/Node/FS.py | 7 | ||||
-rw-r--r-- | src/engine/SCons/Node/FSTests.py | 25 |
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) |