Accomodate white space in path names when running tests.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 27 Jan 2004 06:35:04 +0000 (06:35 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 27 Jan 2004 06:35:04 +0000 (06:35 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@886 fdb21ef1-2011-0410-befe-b5e4ea1792b1

etc/TestCmd.py
runtest.py
src/CHANGES.txt
test/SConstruct.py
test/option-f.py
test/scan-once.py

index 1b78739ee295d2a566dce17fd80e45befc20dfda..61fa2a7d2d1074edb8f2670cb9babfcdd5056ee6 100644 (file)
@@ -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:
index fd421ef4aad11ab55d4aa7ffc273bf7bb5b6ced1..9a0cadd451a1a191a0ea2aa85077427c3dff2d56 100644 (file)
@@ -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)
index ffcfe919bdfa4d6f639b10d1312eff30c1a1c590..26dd7efa7fc748a4e009bd617ba0eb6da1543406 100644 (file)
@@ -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.
index cd201d269f888b674f35db5d82d9bad98abe3f6f..a3ad3aa810538e206d6c921a3a94f5e10cf3e40d 100644 (file)
@@ -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
index 3c8dcee86e67eadc606e23e19e03499e2b409a63..06afece0dae5b6cd03e77acc79d9994eef0b6e8e 100644 (file)
@@ -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()
index cf08f5e480b40647fa019613cff73a28136865ba..cfc4a25c802a8b271430e2f6afbe8f3b181e4d29 100644 (file)
@@ -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?