diff options
| author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2019-07-24 09:57:09 +0200 | 
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2019-07-24 09:57:09 +0200 | 
| commit | c7665433b2004d2b404d6fb9d6fd064998486f63 (patch) | |
| tree | 8525ef6d24f7c6ceb238945ebb2cc997c7afc905 /src/engine/SCons/EnvironmentTests.py | |
| parent | e48d2727885efda8369c7edbc2e3929a59532adc (diff) | |
| parent | 6e228c305122f0564eda1e67d56651f8386d24d7 (diff) | |
Merge branch 'release/debian/3.1.0+repack-1'debian/3.1.0+repack-1
Diffstat (limited to 'src/engine/SCons/EnvironmentTests.py')
| -rw-r--r-- | src/engine/SCons/EnvironmentTests.py | 105 | 
1 files changed, 60 insertions, 45 deletions
diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py index 70eda9e..1ce1007 100644 --- a/src/engine/SCons/EnvironmentTests.py +++ b/src/engine/SCons/EnvironmentTests.py @@ -1,5 +1,5 @@  # -# Copyright (c) 2001 - 2017 The SCons Foundation +# Copyright (c) 2001 - 2019 The SCons Foundation  #  # Permission is hereby granted, free of charge, to any person obtaining  # a copy of this software and associated documentation files (the @@ -23,7 +23,7 @@  from __future__ import print_function -__revision__ = "src/engine/SCons/EnvironmentTests.py rel_3.0.0:4395:8972f6a2f699 2017/09/18 12:59:24 bdbaddog" +__revision__ = "src/engine/SCons/EnvironmentTests.py e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan"  import SCons.compat @@ -74,7 +74,7 @@ def diff_dict(d1, d2):                     s2 = s2 + "    " + repr(k) + " : " + repr(d2[k]) + "\n"             else:                 s1 = s1 + "    " + repr(k) + " : " + repr(d1[k]) + "\n" -        elif k in env2: +        elif k in d2:             s2 = s2 + "    " + repr(k) + " : " + repr(d2[k]) + "\n"      s1 = s1 + "}\n"      s2 = s2 + "}\n" @@ -139,10 +139,6 @@ class CLVar(UL):          return UL.__add__(self, CLVar(other))      def __radd__(self, other):          return UL.__radd__(self, CLVar(other)) -    def __coerce__(self, other): -        return (self, CLVar(other)) - -  class DummyNode(object):      def __init__(self, name): @@ -267,39 +263,39 @@ class SubstitutionTestCase(unittest.TestCase):          nodes = env.arg2nodes("Util.py UtilTests.py", Factory)          assert len(nodes) == 1, nodes          assert isinstance(nodes[0], X) -        assert nodes[0].name == "Util.py UtilTests.py" +        assert nodes[0].name == "Util.py UtilTests.py", nodes[0].name          nodes = env.arg2nodes(u"Util.py UtilTests.py", Factory)          assert len(nodes) == 1, nodes          assert isinstance(nodes[0], X) -        assert nodes[0].name == u"Util.py UtilTests.py" +        assert nodes[0].name == u"Util.py UtilTests.py", nodes[0].name          nodes = env.arg2nodes(["Util.py", "UtilTests.py"], Factory)          assert len(nodes) == 2, nodes          assert isinstance(nodes[0], X)          assert isinstance(nodes[1], X) -        assert nodes[0].name == "Util.py" -        assert nodes[1].name == "UtilTests.py" +        assert nodes[0].name == "Util.py", nodes[0].name +        assert nodes[1].name == "UtilTests.py", nodes[1].name          n1 = Factory("Util.py")          nodes = env.arg2nodes([n1, "UtilTests.py"], Factory)          assert len(nodes) == 2, nodes          assert isinstance(nodes[0], X)          assert isinstance(nodes[1], X) -        assert nodes[0].name == "Util.py" -        assert nodes[1].name == "UtilTests.py" +        assert nodes[0].name == "Util.py", nodes[0].name +        assert nodes[1].name == "UtilTests.py", nodes[1].name          class SConsNode(SCons.Node.Node):              pass          nodes = env.arg2nodes(SConsNode())          assert len(nodes) == 1, nodes -        assert isinstance(nodes[0], SConsNode), node +        assert isinstance(nodes[0], SConsNode), nodes[0]          class OtherNode(object):              pass          nodes = env.arg2nodes(OtherNode())          assert len(nodes) == 1, nodes -        assert isinstance(nodes[0], OtherNode), node +        assert isinstance(nodes[0], OtherNode), nodes[0]          def lookup_a(str, F=Factory):              if str[0] == 'a': @@ -488,7 +484,7 @@ class SubstitutionTestCase(unittest.TestCase):          env = SubstitutionEnvironment(AAA = '$BBB', BBB = '$CCC', CCC = 'c')          l = env.subst_list("$AAA ${AAA}A ${AAA}B $BBB") -        assert l == [["c", "cA", "cB", "c"]], mystr +        assert l == [["c", "cA", "cB", "c"]], l          env = SubstitutionEnvironment(AAA = '$BBB', BBB = '$CCC', CCC = [ 'a', 'b\nc' ])          lst = env.subst_list([ "$AAA", "B $CCC" ]) @@ -804,7 +800,9 @@ sys.exit(0)              "-fopenmp " + \              "-mno-cygwin -mwindows " + \              "-arch i386 -isysroot /tmp " + \ -            "-isystem /usr/include/foo " + \ +            "-iquote /usr/include/foo1 " + \ +            "-isystem /usr/include/foo2 " + \ +            "-idirafter /usr/include/foo3 " + \              "+DD64 " + \              "-DFOO -DBAR=value -D BAZ " @@ -813,10 +811,12 @@ sys.exit(0)          assert d['ASFLAGS'] == ['-as'], d['ASFLAGS']          assert d['CFLAGS']  == ['-std=c99']          assert d['CCFLAGS'] == ['-X', '-Wa,-as', -                                  '-pthread', '-fopenmp', '-mno-cygwin', -                                  ('-arch', 'i386'), ('-isysroot', '/tmp'), -                                  ('-isystem', '/usr/include/foo'), -                                  '+DD64'], repr(d['CCFLAGS']) +                                '-pthread', '-fopenmp', '-mno-cygwin', +                                ('-arch', 'i386'), ('-isysroot', '/tmp'), +                                ('-iquote', '/usr/include/foo1'), +                                ('-isystem', '/usr/include/foo2'), +                                ('-idirafter', '/usr/include/foo3'), +                                '+DD64'], repr(d['CCFLAGS'])          assert d['CXXFLAGS'] == ['-std=c++0x'], repr(d['CXXFLAGS'])          assert d['CPPDEFINES'] == ['FOO', ['BAR', 'value'], 'BAZ'], d['CPPDEFINES']          assert d['CPPFLAGS'] == ['-Wp,-cpp'], d['CPPFLAGS'] @@ -967,7 +967,7 @@ class BaseTestCase(unittest.TestCase,TestEnvironmentFixture):          self.assertRaises(AttributeError, getattr, bw, 'foobar')          bw.foobar = 42 -        assert bw.foobar is 42 +        assert bw.foobar == 42      # This unit test is currently disabled because we don't think the      # underlying method it tests (Environment.BuilderWrapper.execute()) @@ -1199,7 +1199,7 @@ env4.builder1.env, env3)          test_it('foo.bar')          test_it('foo-bar') -    def test_autogenerate(dict): +    def test_autogenerate(self):          """Test autogenerating variables in a dictionary."""          drive, p = os.path.splitdrive(os.getcwd()) @@ -1210,9 +1210,9 @@ env4.builder1.env, env3)              drive, path = os.path.splitdrive(path)              return drive.lower() + path -        env = dict.TestEnvironment(LIBS = [ 'foo', 'bar', 'baz' ], -                          LIBLINKPREFIX = 'foo', -                          LIBLINKSUFFIX = 'bar') +        env = self.TestEnvironment(LIBS = [ 'foo', 'bar', 'baz' ], +                                   LIBLINKPREFIX = 'foo', +                                   LIBLINKSUFFIX = 'bar')          def RDirs(pathlist, fs=env.fs):              return fs.Dir('xx').Rfindalldirs(pathlist) @@ -1627,9 +1627,9 @@ def exists(env):          env1.AppendENVPath('PATH',r'C:\dir\num\two', sep = ';')          env1.AppendENVPath('PATH',r'C:\dir\num\three', sep = ';')          env1.AppendENVPath('MYPATH',r'C:\mydir\num\three','MYENV', sep = ';') -        env1.AppendENVPath('MYPATH',r'C:\mydir\num\one','MYENV', sep = ';') +        env1.AppendENVPath('MYPATH',r'C:\mydir\num\one','MYENV', sep = ';', delete_existing=1)          # this should do nothing since delete_existing is 0 -        env1.AppendENVPath('MYPATH',r'C:\mydir\num\three','MYENV', sep = ';', delete_existing=0) +        env1.AppendENVPath('MYPATH',r'C:\mydir\num\three','MYENV', sep = ';')          assert(env1['ENV']['PATH'] == r'C:\dir\num\one;C:\dir\num\two;C:\dir\num\three')          assert(env1['MYENV']['MYPATH'] == r'C:\mydir\num\two;C:\mydir\num\three;C:\mydir\num\one') @@ -1781,15 +1781,15 @@ def exists(env):          env2 = env1.Clone()          env3 = env1.Clone(tools=[bar, baz]) -        assert env1.get('FOO') is 1 +        assert env1.get('FOO') == 1          assert env1.get('BAR') is None          assert env1.get('BAZ') is None -        assert env2.get('FOO') is 1 +        assert env2.get('FOO') == 1          assert env2.get('BAR') is None          assert env2.get('BAZ') is None -        assert env3.get('FOO') is 1 -        assert env3.get('BAR') is 2 -        assert env3.get('BAZ') is 3 +        assert env3.get('FOO') == 1 +        assert env3.get('BAR') == 2 +        assert env3.get('BAZ') == 3          # Ensure that recursive variable substitution when copying          # environments works properly. @@ -2026,7 +2026,9 @@ def generate(env):                                   "-pthread " + \                                   "-mno-cygwin -mwindows " + \                                   "-arch i386 -isysroot /tmp " + \ -                                 "-isystem /usr/include/foo " + \ +                                 "-iquote /usr/include/foo1 " + \ +                                 "-isystem /usr/include/foo2 " + \ +                                 "-idirafter /usr/include/foo3 " + \                                   "+DD64 " + \                                   "-DFOO -DBAR=value")              env.ParseConfig("fake $COMMAND") @@ -2035,7 +2037,9 @@ def generate(env):              assert env['CCFLAGS'] == ['', '-X', '-Wa,-as',                                        '-pthread', '-mno-cygwin',                                        ('-arch', 'i386'), ('-isysroot', '/tmp'), -                                      ('-isystem', '/usr/include/foo'), +                                      ('-iquote', '/usr/include/foo1'), +                                      ('-isystem', '/usr/include/foo2'), +                                      ('-idirafter', '/usr/include/foo3'),                                        '+DD64'], env['CCFLAGS']              assert env['CPPDEFINES'] == ['FOO', ['BAR', 'value']], env['CPPDEFINES']              assert env['CPPFLAGS'] == ['', '-Wp,-cpp'], env['CPPFLAGS'] @@ -2437,16 +2441,16 @@ f5: \          exc_caught = None          try:              env.Tool('does_not_exist') -        except SCons.Errors.EnvironmentError: +        except SCons.Errors.SConsEnvironmentError:              exc_caught = 1 -        assert exc_caught, "did not catch expected EnvironmentError" +        assert exc_caught, "did not catch expected SConsEnvironmentError"          exc_caught = None          try:              env.Tool('$NONE') -        except SCons.Errors.EnvironmentError: +        except SCons.Errors.SConsEnvironmentError:              exc_caught = 1 -        assert exc_caught, "did not catch expected EnvironmentError" +        assert exc_caught, "did not catch expected SConsEnvironmentError"          # Use a non-existent toolpath directory just to make sure we          # can call Tool() with the keyword argument. @@ -3276,11 +3280,11 @@ def generate(env):          s = e.src_builder()          assert s is None, s -    def test_SourceSignatures(type): +    def test_SourceSignatures(self):          """Test the SourceSignatures() method"""          import SCons.Errors -        env = type.TestEnvironment(M = 'MD5', T = 'timestamp') +        env = self.TestEnvironment(M = 'MD5', T = 'timestamp')          exc_caught = None          try: @@ -3316,7 +3320,7 @@ def generate(env):      def test_Split(self):          """Test the Split() method""" -        env = self.TestEnvironment(FOO='fff', BAR='bbb') +        env = self.TestEnvironment(FOO = 'fff', BAR = 'bbb')          s = env.Split("foo bar")          assert s == ["foo", "bar"], s          s = env.Split("$FOO bar") @@ -3330,11 +3334,11 @@ def generate(env):          s = env.Split("$FOO$BAR")          assert s == ["fffbbb"], s -    def test_TargetSignatures(type): +    def test_TargetSignatures(self):          """Test the TargetSignatures() method"""          import SCons.Errors -        env = type.TestEnvironment(B = 'build', C = 'content') +        env = self.TestEnvironment(B='build', C='content')          exc_caught = None          try: @@ -3401,7 +3405,7 @@ def generate(env): -    def test_Environment_global_variable(type): +    def test_Environment_global_variable(self):          """Test setting Environment variable to an Environment.Base subclass"""          class MyEnv(SCons.Environment.Base):              def xxx(self, string): @@ -3583,6 +3587,10 @@ class OverrideEnvironmentTestCase(unittest.TestCase,TestEnvironmentFixture):      def setUp(self):          env = Environment()          env._dict = {'XXX' : 'x', 'YYY' : 'y'} +        def verify_value(env, key, value, *args, **kwargs): +            """Verifies that key is value on the env this is called with.""" +            assert env[key] == value +        env.AddMethod(verify_value)          env2 = OverrideEnvironment(env, {'XXX' : 'x2'})          env3 = OverrideEnvironment(env2, {'XXX' : 'x3', 'YYY' : 'y3', 'ZZZ' : 'z3'})          self.envs = [ env, env2, env3 ] @@ -3773,6 +3781,13 @@ class OverrideEnvironmentTestCase(unittest.TestCase,TestEnvironmentFixture):      #    """Test the OverrideEnvironment WhereIs() method"""      #    pass +    def test_PseudoBuilderInherits(self): +        """Test that pseudo-builders inherit the overrided values.""" +        env, env2, env3 = self.envs +        env.verify_value('XXX', 'x') +        env2.verify_value('XXX', 'x2') +        env3.verify_value('XXX', 'x3') +      def test_Dir(self):          """Test the OverrideEnvironment Dir() method"""          env, env2, env3 = self.envs  | 
