diff options
author | Steven Knight <knight@baldmt.com> | 2003-04-30 19:38:19 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2003-04-30 19:38:19 (GMT) |
commit | 3387eab42442c7fe7ed0064de5b939497cc6df1b (patch) | |
tree | 3c34e3c08fe379c147c7166067d05a0a87fccaa6 /src | |
parent | 212d77d88aa4374ef13f2e6bc7edf3395ac9736c (diff) | |
download | SCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.zip SCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.tar.gz SCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.tar.bz2 |
Test portability fixes for Cygwin. (Chad Austin)
Diffstat (limited to 'src')
-rw-r--r-- | src/engine/SCons/Action.py | 3 | ||||
-rw-r--r-- | src/engine/SCons/ActionTests.py | 18 | ||||
-rw-r--r-- | src/engine/SCons/EnvironmentTests.py | 27 | ||||
-rw-r--r-- | src/engine/SCons/Tool/gs.py | 2 |
4 files changed, 48 insertions, 2 deletions
diff --git a/src/engine/SCons/Action.py b/src/engine/SCons/Action.py index 1260850..d7be127 100644 --- a/src/engine/SCons/Action.py +++ b/src/engine/SCons/Action.py @@ -346,6 +346,9 @@ class LazyCmdGenerator: # The variable reference substitutes to nothing. return '' + def __cmp__(self, other): + return cmp(self.__dict__, other.__dict__) + class FunctionAction(ActionBase): """Class for Python function actions.""" diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py index 9189b4c..4aee748 100644 --- a/src/engine/SCons/ActionTests.py +++ b/src/engine/SCons/ActionTests.py @@ -412,11 +412,24 @@ class CommandActionTestCase(unittest.TestCase): assert c == "act.py: 'three' 'four'\n", c cmd5 = r'%s %s %s $TARGET XYZZY' % (python, act_py, outfile) + + act = SCons.Action.CommandAction(cmd5) + env5 = Environment() + if scons_env.has_key('ENV'): + env5['ENV'] = scons_env['ENV'] + PATH = scons_env['ENV'].get('PATH', '') + else: + env5['ENV'] = {} + PATH = '' + + env5['ENV']['XYZZY'] = 'xyzzy' + r = act(target = 'out5', source = [], env = env5) act = SCons.Action.CommandAction(cmd5) r = act(target = 'out5', source = [], - env = env.Copy(ENV = {'XYZZY' : 'xyzzy'})) + env = env.Copy(ENV = {'XYZZY' : 'xyzzy', + 'PATH' : PATH})) assert r == 0 c = test.read(outfile, 'r') assert c == "act.py: 'out5' 'XYZZY'\nact.py: 'xyzzy'\n", c @@ -460,6 +473,9 @@ class CommandActionTestCase(unittest.TestCase): # as "file not found" errors expect_nonexistent = 1 expect_nonexecutable = 1 + elif sys.platform == 'cygwin': + expect_nonexistent = 127 + expect_nonexecutable = 127 else: expect_nonexistent = 127 expect_nonexecutable = 126 diff --git a/src/engine/SCons/EnvironmentTests.py b/src/engine/SCons/EnvironmentTests.py index c041755..e99ea0d 100644 --- a/src/engine/SCons/EnvironmentTests.py +++ b/src/engine/SCons/EnvironmentTests.py @@ -54,6 +54,28 @@ def diff_env(env1, env2): s2 = s2 + "}\n" return s1 + s2 +def diff_dict(d1, d2): + s1 = "d1 = {\n" + s2 = "d2 = {\n" + d = {} + for k in d1.keys() + d2.keys(): + d[k] = None + keys = d.keys() + keys.sort() + for k in keys: + if d1.has_key(k): + if d2.has_key(k): + if d1[k] != d2[k]: + s1 = s1 + " " + repr(k) + " : " + repr(d1[k]) + "\n" + s2 = s2 + " " + repr(k) + " : " + repr(d2[k]) + "\n" + else: + s1 = s1 + " " + repr(k) + " : " + repr(d1[k]) + "\n" + elif env2.has_key(k): + s2 = s2 + " " + repr(k) + " : " + repr(d2[k]) + "\n" + s1 = s1 + "}\n" + s2 = s2 + "}\n" + return s1 + s2 + called_it = {} built_it = {} @@ -372,6 +394,11 @@ class EnvironmentTestCase(unittest.TestCase): def test_Append(self): """Test appending to construction variables in an Environment """ + + b1 = Environment()['BUILDERS'] + b2 = Environment()['BUILDERS'] + assert b1 == b2, diff_dict(b1, b2) + import UserList UL = UserList.UserList env1 = Environment(AAA = 'a', BBB = 'b', CCC = 'c', DDD = 'd', diff --git a/src/engine/SCons/Tool/gs.py b/src/engine/SCons/Tool/gs.py index 5aa83d5..79d50e4 100644 --- a/src/engine/SCons/Tool/gs.py +++ b/src/engine/SCons/Tool/gs.py @@ -41,7 +41,7 @@ platform = SCons.Platform.platform_default() if platform == 'os2': gs = 'gsos2' -elif platform == 'cygwin' or platform == 'win32': +elif platform == 'win32': gs = 'gswin32c' else: gs = 'gs' |