diff options
Diffstat (limited to 'src/engine/SCons/Scanner/ScannerTests.py')
| -rw-r--r-- | src/engine/SCons/Scanner/ScannerTests.py | 38 | 
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):  | 
