summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-01-27 06:35:04 (GMT)
committerSteven Knight <knight@baldmt.com>2004-01-27 06:35:04 (GMT)
commit337d309e434809058ceb356b40f7415d7c07cc09 (patch)
treefaf09e444cbecbeafdc012c1e686a394c6eb156c
parent4e3b37959a38511c32b997a9c60efac699e5a635 (diff)
downloadSCons-337d309e434809058ceb356b40f7415d7c07cc09.zip
SCons-337d309e434809058ceb356b40f7415d7c07cc09.tar.gz
SCons-337d309e434809058ceb356b40f7415d7c07cc09.tar.bz2
Accomodate white space in path names when running tests.
-rw-r--r--etc/TestCmd.py4
-rw-r--r--runtest.py9
-rw-r--r--src/CHANGES.txt3
-rw-r--r--test/SConstruct.py2
-rw-r--r--test/option-f.py2
-rw-r--r--test/scan-once.py12
6 files changed, 25 insertions, 7 deletions
diff --git a/etc/TestCmd.py b/etc/TestCmd.py
index 1b78739..61fa2a7 100644
--- a/etc/TestCmd.py
+++ b/etc/TestCmd.py
@@ -173,7 +173,7 @@ version.
# SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
__author__ = "Steven Knight <knight at baldmt dot com>"
-__revision__ = "TestCmd.py 0.04.D009 2003/07/18 17:37:29 knight"
+__revision__ = "TestCmd.py 0.04.D010 2004/01/27 00:11:44 knight"
__version__ = "0.04"
import os
@@ -636,7 +636,7 @@ class TestCmd:
if interpreter:
cmd = interpreter + " " + cmd
else:
- cmd = self.program
+ cmd = escape_cmd(self.program)
if self.interpreter:
cmd = self.interpreter + " " + cmd
if arguments:
diff --git a/runtest.py b/runtest.py
index fd421ef..9a0cadd 100644
--- a/runtest.py
+++ b/runtest.py
@@ -354,8 +354,15 @@ class Unbuffered:
sys.stdout = Unbuffered(sys.stdout)
+_ws = re.compile('\s')
+
+def escape(s):
+ if _ws.search(s):
+ s = '"' + s + '"'
+ return s
+
for t in tests:
- cmd = string.join([python, debug, t.abspath], " ")
+ cmd = string.join(map(escape, [python, debug, t.abspath]), " ")
if printcmd:
sys.stdout.write(cmd + "\n")
s = os.system(cmd)
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index ffcfe91..26dd7ef 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -141,6 +141,9 @@ RELEASE 0.95 - XXX
of whether the file was built via scons.bat or scons.py.
(Thanks to Niall Douglas for contributing code and testing.)
+ - Fix TestCmd.py, runtest.py and specific tests to accomodate being
+ run from directories whose paths include white space.
+
From Vincent Risi:
- Add support for the bcc32, ilink32 and tlib Borland tools.
diff --git a/test/SConstruct.py b/test/SConstruct.py
index cd201d2..a3ad3aa 100644
--- a/test/SConstruct.py
+++ b/test/SConstruct.py
@@ -34,7 +34,7 @@ test.run(arguments = ".",
stdout = "",
stderr = r"""
scons: \*\*\* No SConstruct file found.
-File "\S+", line \d+, in \S+
+File "[^"]+", line \d+, in \S+
""")
test.match_func = TestCmd.match_exact
diff --git a/test/option-f.py b/test/option-f.py
index 3c8dcee..06afece 100644
--- a/test/option-f.py
+++ b/test/option-f.py
@@ -89,7 +89,7 @@ test.run(arguments = '-f no_such_file .',
stderr = None)
test.fail_test(not test.match_re(test.stderr(), """
scons: warning: Ignoring missing SConscript 'no_such_file'
-File "\S+", line \d+, in .*
+File "[^"]+", line \d+, in .*
"""))
test.pass_test()
diff --git a/test/scan-once.py b/test/scan-once.py
index cf08f5e..cfc4a25 100644
--- a/test/scan-once.py
+++ b/test/scan-once.py
@@ -337,8 +337,16 @@ Mylib.ExportLib(env, lib_fullname)
#cmd_generated = "cd %s ; sh MAKE-HEADER.sh" % Dir(".")
#cmd_justlib = "cd %s ; make" % Dir(".")
-cmd_generated = "%s $SOURCE" % (sys.executable,)
-cmd_justlib = "%s %s -C ${SOURCES[0].dir}" % (sys.executable, sys.argv[0])
+_ws = re.compile('\s')
+
+def escape(s):
+ if _ws.search(s):
+ s = '"' + s + '"'
+ return s
+
+cmd_generated = "%s $SOURCE" % (escape(sys.executable),)
+cmd_justlib = "%s %s -C ${SOURCES[0].dir}" % ((sys.executable),
+ escape(sys.argv[0]))
##### Deps appear correct ... but wacky scanning?
# Why?