Win32 portability fixes.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 3 Jan 2005 20:35:15 +0000 (20:35 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 3 Jan 2005 20:35:15 +0000 (20:35 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@1202 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/engine/SCons/Node/NodeTests.py
src/engine/SCons/Util.py
src/engine/SCons/UtilTests.py
test/Java/JAVACCOMSTR.py
test/RCS/implicit.py
test/multi.py
test/pre-post-actions.py
test/scan-once.py

index 106e44e1e42d255ef78301f6b5f5aa89f7002eac..ee0e82b95540e9153dff0aaaa6167ddfc79a0502 100644 (file)
@@ -1179,7 +1179,7 @@ class NodeListTestCase(unittest.TestCase):
             assert s == "['n3', 'n2', 'n1']", s
 
         r = repr(nl)
-        r = re.sub('at (0x)?[0-9a-z]+', 'at 0x', r)
+        r = re.sub('at (0[xX])?[0-9a-fA-F]+', 'at 0x', r)
         # Don't care about ancestry: just leaf value of MyNode
         r = re.sub('<.*?\.MyNode', '<MyNode', r)
         # New-style classes report as "object"; classic classes report
index d8f0a749c098691017afd2b7de44b12d52eb700b..361b18c936ccc1f107564cb36cb0303066902ffa 100644 (file)
@@ -614,7 +614,7 @@ def scons_subst(strSubst, env, mode=SUBST_RAW, target=None, source=None, gvars={
                                 s = eval(key, self.gvars, lvars)
                             except AttributeError, e:
                                 raise SCons.Errors.UserError, \
-                                      "Error substituting `%s': unknown attribute `%s'" % (key, e)
+                                      "Error trying to evaluate `%s': %s" % (s, e)
                             except (IndexError, NameError, TypeError):
                                 return ''
                             except SyntaxError,e:
@@ -813,7 +813,7 @@ def scons_subst_list(strSubst, env, mode=SUBST_RAW, target=None, source=None, gv
                             s = eval(key, self.gvars, lvars)
                         except AttributeError, e:
                             raise SCons.Errors.UserError, \
-                                  "Error substituting `%s': unknown attribute `%s'" % (key, e)
+                                  "Error trying to evaluate `%s': %s" % (s, e)
                         except (IndexError, NameError, TypeError):
                             return
                         except SyntaxError,e:
index 3ae3b482f416f56e0aec366992af13013cc9ab1e..623603835d8b5c1508baf59f95690ce34c31c4e3 100644 (file)
@@ -456,8 +456,11 @@ class UtilTestCase(unittest.TestCase):
                 pass
             scons_subst('${foo.bar}', env, gvars={'foo':Foo()})
         except SCons.Errors.UserError, e:
-            expect = "Error substituting `foo.bar': unknown attribute `bar'"
-            assert str(e) == expect, e
+            expect = [
+                "Error trying to evaluate `${foo.bar}': bar",
+                "Error trying to evaluate `${foo.bar}': Foo instance has no attribute 'bar'",
+            ]
+            assert str(e) in expect, e
         else:
             raise AssertionError, "did not catch expected UserError"
 
@@ -870,8 +873,11 @@ class UtilTestCase(unittest.TestCase):
                 pass
             scons_subst_list('${foo.bar}', env, gvars={'foo':Foo()})
         except SCons.Errors.UserError, e:
-            expect = "Error substituting `foo.bar': unknown attribute `bar'"
-            assert str(e) == expect, e
+            expect = [
+                "Error trying to evaluate `${foo.bar}': bar",
+                "Error trying to evaluate `${foo.bar}': Foo instance has no attribute 'bar'",
+            ]
+            assert str(e) in expect, e
         else:
             raise AssertionError, "did not catch expected UserError"
 
index 306ae57a1810e53eb50bdb9458ddfff79f56e3fd..7f59e902485259efa061374b4207ba8d1efc4c33 100644 (file)
@@ -29,6 +29,8 @@ Test that the $JAVACCOMSTR construction variable allows you to configure
 the javac output.
 """
 
+import os.path
+
 import TestSCons
 
 python = TestSCons.python
@@ -60,9 +62,14 @@ test.write(['src', 'file1.java'], "file1.java\n/*javac*/\n")
 test.write(['src', 'file2.java'], "file2.java\n/*javac*/\n")
 test.write(['src', 'file3.java'], "file3.java\n/*javac*/\n")
 
+classes_src_file1_class = os.path.join('classes', 'src', 'file1.class')
+src_file1_java= os.path.join('src', 'file1.java')
+src_file2_java= os.path.join('src', 'file2.java')
+src_file3_java= os.path.join('src', 'file3.java')
+
 test.run(stdout = test.wrap_stdout("""\
-Compiling class(es) classes/src/file1.class from src/file1.java src/file2.java src/file3.java
-"""))
+Compiling class(es) %(classes_src_file1_class)s from %(src_file1_java)s %(src_file2_java)s %(src_file3_java)s
+""" % locals()))
 
 test.must_match(['classes', 'src', 'file1.class'],
                 "file1.java\nfile2.java\nfile3.java\n")
index 684a24b8658c1b37a3266e189dd2145b2c8a459d..22892580afcb8ffc9cf5cfb2588fb9fd58d764ea 100644 (file)
@@ -42,6 +42,11 @@ if not ci:
     print "Could not find `ci' command, skipping test(s)."
     test.pass_test(1)
 
+co = test.where_is('co')
+if not co:
+    print "Could not find `co' command, skipping test(s)."
+    test.pass_test(1)
+
 
 
 test.subdir('RCS')
@@ -66,9 +71,10 @@ test.run(program = ci,
          stderr = None)
 
 test.write('SConstruct', """
+DefaultEnvironment(RCS_CO = r'%s')
 env = Environment()
 env.Program('foo.c')
-""")
+""" % co)
 
 test.run(stderr="""\
 RCS/foo.c,v  -->  foo.c
index 7ae1736c4e86b6a2e18ef06a1fc62bacecd4b784..1977679fe88c1e23cc41a226d31ed3da488d9b74 100644 (file)
@@ -28,9 +28,11 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 Test various cases where a target is "built" by multiple builder calls.
 """
 
+import os.path
+import string
+
 import TestCmd
 import TestSCons
-import os.path
 
 test = TestSCons.TestSCons(match=TestCmd.match_re)
 
@@ -173,7 +175,7 @@ test.run(arguments='file4.out',
          stderr=TestSCons.re_escape("""
 scons: warning: Two different environments were specified for target file4.out,
        but they appear to have the same action: %(python)s build.py \$foo \$TARGET \$SOURCES
-""" % {'python':TestSCons.python}) + TestSCons.file_expr)
+""" % {'python':string.replace(TestSCons.python, '\\', '\\\\')}) + TestSCons.file_expr)
 
 test.must_match('file4.out', "3\nfile4a.in\nfile4b.in\n")
 
index 860ae24cc957384125b7e0014233a368d89fcb4d..2d8458c6f846a66de8cb02d3ca16b9d5b95bb0c3 100644 (file)
@@ -28,6 +28,7 @@
 __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
 
 import os
+import os.path
 import stat
 import sys
 import TestSCons
@@ -162,8 +163,8 @@ env.Command('dir/file', [], build)
 test.run(chdir = 'work3', arguments = 'dir/file', stdout=test.wrap_stdout("""\
 pre(["dir"], [])
 post(["dir"], [])
-build(["dir/file"], [])
-"""))
+build(["%s"], [])
+""" % os.path.join('dir', 'file')))
 
 test.must_match(['work3', 'dir', 'file'], "build()\n")
 
index 44363106afecedf3f9a966858729f6dab14ee542..cdacccc215ab6d566dcd75061466e7150b8e40c2 100644 (file)
@@ -96,7 +96,7 @@ test.write(['SLF', 'SConscript'], """\
 ### don't seem to work well!  ARRGH!!!!
 ###
 
-experimenttop = "%s"
+experimenttop = r"%s"
 
 import os
 import os.path
@@ -287,7 +287,7 @@ static_hdrs = "libg_w.h"
 #exported_hdrs = generated_hdrs + " " + static_hdrs
 exported_hdrs = static_hdrs
 lib_name = "g"
-lib_fullname = "libg.a"
+lib_fullname = env.subst("${LIBPREFIX}g${LIBSUFFIX}")
 lib_srcs = string.split("libg_1.c libg_2.c libg_3.c")
 import re
 lib_objs = map(lambda x: re.sub("\.c$", ".o", x), lib_srcs)