summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Scanner/CTests.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2001-12-11 05:28:54 (GMT)
committerSteven Knight <knight@baldmt.com>2001-12-11 05:28:54 (GMT)
commitd28daaf13a9b527df8a9f5ce2b04e077b776ef25 (patch)
treed7a12e4a69be2477e011e3644cceb5ed420a0969 /src/engine/SCons/Scanner/CTests.py
parentae0bbc2d9e90c35913e217e1c0ceb3fb86b2b1ee (diff)
downloadSCons-d28daaf13a9b527df8a9f5ce2b04e077b776ef25.zip
SCons-d28daaf13a9b527df8a9f5ce2b04e077b776ef25.tar.gz
SCons-d28daaf13a9b527df8a9f5ce2b04e077b776ef25.tar.bz2
Create a specific CScanner subclass.
Diffstat (limited to 'src/engine/SCons/Scanner/CTests.py')
-rw-r--r--src/engine/SCons/Scanner/CTests.py31
1 files changed, 26 insertions, 5 deletions
diff --git a/src/engine/SCons/Scanner/CTests.py b/src/engine/SCons/Scanner/CTests.py
index 5f4e0b6..c16da61 100644
--- a/src/engine/SCons/Scanner/CTests.py
+++ b/src/engine/SCons/Scanner/CTests.py
@@ -27,10 +27,13 @@ import TestCmd
import SCons.Scanner.C
import unittest
import sys
+import os
import os.path
test = TestCmd.TestCmd(workdir = '')
+os.chdir(test.workpath(''))
+
# create some source files and headers:
test.write('f1.cpp',"""
@@ -122,7 +125,7 @@ class CScannerTestCase1(unittest.TestCase):
def runTest(self):
env = DummyEnvironment([])
s = SCons.Scanner.C.CScan()
- deps = s.scan(test.workpath('f1.cpp'), env)
+ deps = s.instance(env).scan(test.workpath('f1.cpp'), env)
headers = ['f1.h', 'f2.h', 'fi.h']
deps_match(self, deps, headers)
@@ -130,7 +133,7 @@ class CScannerTestCase2(unittest.TestCase):
def runTest(self):
env = DummyEnvironment([test.workpath("d1")])
s = SCons.Scanner.C.CScan()
- deps = s.scan(test.workpath('f1.cpp'), env)
+ deps = s.instance(env).scan(test.workpath('f1.cpp'), env)
headers = ['f1.h', 'd1/f2.h']
deps_match(self, deps, headers)
@@ -138,7 +141,7 @@ class CScannerTestCase3(unittest.TestCase):
def runTest(self):
env = DummyEnvironment([test.workpath("d1")])
s = SCons.Scanner.C.CScan()
- deps = s.scan(test.workpath('f2.cpp'), env)
+ deps = s.instance(env).scan(test.workpath('f2.cpp'), env)
headers = ['f1.h', 'd1/f1.h', 'd1/d2/f1.h']
deps_match(self, deps, headers)
@@ -146,7 +149,7 @@ class CScannerTestCase4(unittest.TestCase):
def runTest(self):
env = DummyEnvironment([test.workpath("d1"), test.workpath("d1/d2")])
s = SCons.Scanner.C.CScan()
- deps = s.scan(test.workpath('f2.cpp'), env)
+ deps = s.instance(env).scan(test.workpath('f2.cpp'), env)
headers = ['f1.h', 'd1/f1.h', 'd1/d2/f1.h', 'd1/d2/f4.h']
deps_match(self, deps, headers)
@@ -154,11 +157,28 @@ class CScannerTestCase5(unittest.TestCase):
def runTest(self):
env = DummyEnvironment([])
s = SCons.Scanner.C.CScan()
- deps = s.scan(test.workpath('f3.cpp'), env)
+ deps = s.instance(env).scan(test.workpath('f3.cpp'), env)
headers = ['f1.h', 'f2.h', 'f3.h', 'fi.h', 'fj.h',
'd1/f1.h', 'd1/f2.h', 'd1/f3.h']
deps_match(self, deps, headers)
+class CScannerTestCase6(unittest.TestCase):
+ def runTest(self):
+ env1 = DummyEnvironment([test.workpath("d1")])
+ env2 = DummyEnvironment([test.workpath("d1/d2")])
+ s = SCons.Scanner.C.CScan()
+ s1 = s.instance(env1)
+ s2 = s.instance(env2)
+ s3 = s.instance(env1)
+ assert not s1 is s2
+ assert s1 is s3
+ deps1 = s1.scan(test.workpath('f1.cpp'), None)
+ deps2 = s2.scan(test.workpath('f1.cpp'), None)
+ headers1 = ['f1.h', 'd1/f2.h']
+ headers2 = ['f1.h', 'd1/d2/f2.h']
+ deps_match(self, deps1, headers1)
+ deps_match(self, deps2, headers2)
+
def suite():
suite = unittest.TestSuite()
suite.addTest(CScannerTestCase1())
@@ -166,6 +186,7 @@ def suite():
suite.addTest(CScannerTestCase3())
suite.addTest(CScannerTestCase4())
suite.addTest(CScannerTestCase5())
+ suite.addTest(CScannerTestCase6())
return suite
if __name__ == "__main__":