summaryrefslogtreecommitdiff
path: root/src/engine/SCons/Scanner/ScannerTests.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/SCons/Scanner/ScannerTests.py')
-rw-r--r--src/engine/SCons/Scanner/ScannerTests.py38
1 files changed, 34 insertions, 4 deletions
diff --git a/src/engine/SCons/Scanner/ScannerTests.py b/src/engine/SCons/Scanner/ScannerTests.py
index b6ede69..a962a4c 100644
--- a/src/engine/SCons/Scanner/ScannerTests.py
+++ b/src/engine/SCons/Scanner/ScannerTests.py
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2001 - 2016 The SCons Foundation
+# Copyright (c) 2001 - 2017 The SCons Foundation
#
# Permission is hereby granted, free of charge, to any person obtaining
# a copy of this software and associated documentation files (the
@@ -20,7 +20,7 @@
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-__revision__ = "src/engine/SCons/Scanner/ScannerTests.py rel_2.5.1:3735:9dc6cee5c168 2016/11/03 14:02:02 bdbaddog"
+__revision__ = "src/engine/SCons/Scanner/ScannerTests.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog"
import SCons.compat
@@ -105,7 +105,7 @@ class ScannerTestCase(unittest.TestCase):
assert str(s) == 'fooscan', str(s)
assert s.argument == 888, s.argument
-
+
class BaseTestCase(unittest.TestCase):
class skey_node(object):
@@ -236,7 +236,7 @@ class BaseTestCase(unittest.TestCase):
def test___cmp__(self):
"""Test the Scanner.Base class __cmp__() method"""
s = SCons.Scanner.Base(self.func, "Cmp")
- assert cmp(s, None)
+ assert s != None
def test_hash(self):
"""Test the Scanner.Base class __hash__() method"""
@@ -447,6 +447,17 @@ class CurrentTestCase(unittest.TestCase):
self.failUnless(ic.func_called, "did not call func()")
class ClassicTestCase(unittest.TestCase):
+
+ def func(self, filename, env, target, *args):
+ self.filename = filename
+ self.env = env
+ self.target = target
+
+ if len(args) > 0:
+ self.arg = args[0]
+
+ return self.deps
+
def test_find_include(self):
"""Test the Scanner.Classic find_include() method"""
env = DummyEnvironment()
@@ -548,6 +559,25 @@ class ClassicTestCase(unittest.TestCase):
ret = s.function(n, env, ('foo5',))
assert ret == ['jkl', 'mno'], ret
+ def test_recursive(self):
+ """Test the Scanner.Classic class recursive flag"""
+ nodes = [1, 2, 3, 4]
+
+
+ s = SCons.Scanner.Classic("Test", [], None, "", function=self.func, recursive=1)
+ n = s.recurse_nodes(nodes)
+ self.failUnless(n == n,
+ "recursive = 1 didn't return all nodes: %s" % n)
+
+ def odd_only(nodes):
+ return [n for n in nodes if n % 2]
+
+ s = SCons.Scanner.Classic("Test", [], None, "", function=self.func, recursive=odd_only)
+ n = s.recurse_nodes(nodes)
+ self.failUnless(n == [1, 3],
+ "recursive = 1 didn't return all nodes: %s" % n)
+
+
class ClassicCPPTestCase(unittest.TestCase):