summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/ActionTests.py3
-rw-r--r--src/engine/SCons/SConfTests.py16
-rw-r--r--src/engine/SCons/Script/Interactive.py2
-rw-r--r--src/engine/SCons/Tool/FortranCommon.py7
4 files changed, 22 insertions, 6 deletions
diff --git a/src/engine/SCons/ActionTests.py b/src/engine/SCons/ActionTests.py
index f25f232..a503981 100644
--- a/src/engine/SCons/ActionTests.py
+++ b/src/engine/SCons/ActionTests.py
@@ -1003,7 +1003,8 @@ class CommandActionTestCase(unittest.TestCase):
# NT treats execs of directories and non-executable files
# as "file not found" errors
expect_nonexistent = 1
- expect_nonexecutable = 1
+ expect_nonexecutable_file = 1
+ expect_nonexecutable_dir = 1
elif sys.platform == 'cygwin':
expect_nonexistent = 127
# Newer cygwin seems to return 126 for following
diff --git a/src/engine/SCons/SConfTests.py b/src/engine/SCons/SConfTests.py
index 25c89d2..ba9f2f5e 100644
--- a/src/engine/SCons/SConfTests.py
+++ b/src/engine/SCons/SConfTests.py
@@ -88,7 +88,21 @@ class SConfTestCase(unittest.TestCase):
if self.scons_env['CXX'] == 'g++':
global existing_lib
existing_lib = 'm'
-
+
+ if sys.platform in ['cygwin', 'win32']:
+ # On Windows, SCons.Platform.win32 redefines the builtin
+ # file() and open() functions to close the file handles.
+ # This interferes with the unittest.py infrastructure in
+ # some way. Just sidestep the issue by restoring the
+ # original builtin functions whenever we have to reset
+ # all of our global state.
+
+ import __builtin__
+ import SCons.Platform.win32
+
+ __builtin__.file = SCons.Platform.win32._builtin_file
+ __builtin__.open = SCons.Platform.win32._builtin_open
+
def _baseTryXXX(self, TryFunc):
# TryCompile and TryLink are much the same, so we can test them
# in one method, we pass the function as a string ('TryCompile',
diff --git a/src/engine/SCons/Script/Interactive.py b/src/engine/SCons/Script/Interactive.py
index b1774eb..9510892 100644
--- a/src/engine/SCons/Script/Interactive.py
+++ b/src/engine/SCons/Script/Interactive.py
@@ -145,6 +145,8 @@ class SConsInteractiveCmd(cmd.Cmd):
line = 'shell ' + line[1:]
elif line[0] == '?':
line = 'help ' + line[1:]
+ if os.sep == '\\':
+ line = string.replace(line, '\\', '\\\\')
argv = shlex.split(line)
argv[0] = self.synonyms.get(argv[0], argv[0])
if not argv[0]:
diff --git a/src/engine/SCons/Tool/FortranCommon.py b/src/engine/SCons/Tool/FortranCommon.py
index 579b4dd..82a5a6c 100644
--- a/src/engine/SCons/Tool/FortranCommon.py
+++ b/src/engine/SCons/Tool/FortranCommon.py
@@ -92,12 +92,11 @@ def ComputeFortranSuffixes(suffixes, ppsuffixes):
assert len(suffixes) > 0
s = suffixes[0]
sup = string.upper(s)
+ upper_suffixes = map(string.upper, suffixes)
if SCons.Util.case_sensitive_suffixes(s, sup):
- for i in suffixes:
- ppsuffixes.append(string.upper(i))
+ ppsuffixes.extend(upper_suffixes)
else:
- for i in suffixes:
- suffixes.append(string.upper(i))
+ suffixes.extend(upper_suffixes)
def CreateDialectActions(dialect):
"""Create dialect specific actions."""