summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2003-04-30 19:38:19 (GMT)
committerSteven Knight <knight@baldmt.com>2003-04-30 19:38:19 (GMT)
commit3387eab42442c7fe7ed0064de5b939497cc6df1b (patch)
tree3c34e3c08fe379c147c7166067d05a0a87fccaa6 /src/engine
parent212d77d88aa4374ef13f2e6bc7edf3395ac9736c (diff)
downloadSCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.zip
SCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.tar.gz
SCons-3387eab42442c7fe7ed0064de5b939497cc6df1b.tar.bz2
Test portability fixes for Cygwin. (Chad Austin)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Action.py3
-rw-r--r--src/engine/SCons/ActionTests.py18
-rw-r--r--src/engine/SCons/EnvironmentTests.py27
-rw-r--r--src/engine/SCons/Tool/gs.py2
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'