win32 test portability fixes (Anthony Roach)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 4 Oct 2002 22:04:27 +0000 (22:04 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Fri, 4 Oct 2002 22:04:27 +0000 (22:04 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@474 fdb21ef1-2011-0410-befe-b5e4ea1792b1

etc/TestSCons.py
src/engine/SCons/UtilTests.py
test/AS.py
test/RANLIB.py
test/RANLIBFLAGS.py
test/Scanner.py
test/TAR.py
test/TARFLAGS.py
test/option--D.py
test/option-q.py
test/option-u.py

index 5d4d4a09a64589d88c3018f729ffb399e40c634f..997104bc616a839309494d32ba2d2a83dd8fad31 100644 (file)
@@ -151,6 +151,20 @@ class TestSCons(TestCmd.TestCmd):
            print self.stderr()
            raise TestFailed
 
+    def detect(self, var, prog):
+        """
+        Detect a program named 'prog' by first checking  the construction 
+        variable named 'var' and finally searching the path. If either method
+        fails to detect the program, then false is returned, otherwise 
+        the programs full path is returned.
+        """
+
+        import SCons.Environment
+        try:
+            return SCons.Environment.Environment()[var] == prog and self.where_is(prog)
+        except KeyError:
+            return None
+
     def wrap_stdout(self, build_str = "", read_str = ""):
         """Wraps standard output string(s) in the normal
         "Reading ... done" and "Building ... done" strings
index cad5670b81d2b67e422c81a130c4188d5f3cc31a..628de307a13f93b0d85b4d89cd8a02b6bf542b12 100644 (file)
@@ -58,7 +58,6 @@ class UtilTestCase(unittest.TestCase):
             def cvt(str):
                 return string.replace(str, '/', os.sep)
 
-
         newcom = scons_subst("test $TARGETS $SOURCES", loc, {})
         assert newcom == cvt("test foo/bar.exe /bar/baz.obj ../foo/baz.obj foo/blah.cpp /bar/ack.cpp ../foo/ack.c")
 
@@ -90,15 +89,15 @@ class UtilTestCase(unittest.TestCase):
         assert newcom == cvt("test foo")
 
         newcom = scons_subst("test ${TARGET.abspath}", loc, {})
-        assert newcom == cvt("test %s/foo/bar.exe"%os.getcwd()), newcom
+        assert newcom == cvt("test %s/foo/bar.exe"%SCons.Util.updrive(os.getcwd())), newcom
 
         newcom = scons_subst("test ${SOURCES.abspath}", loc, {})
-        assert newcom == cvt("test %s/foo/blah.cpp %s %s/foo/ack.c"%(os.getcwd(),
-                                                                     os.path.abspath(os.path.normpath("/bar/ack.cpp")),
-                                                                     os.path.normpath(os.getcwd()+"/.."))), newcom
+        assert newcom == cvt("test %s/foo/blah.cpp %s %s/foo/ack.c"%(SCons.Util.updrive(os.getcwd()),
+                                                                     SCons.Util.updrive(os.path.abspath(os.path.normpath("/bar/ack.cpp"))),
+                                                                     SCons.Util.updrive(os.path.normpath(os.getcwd()+"/..")))), newcom
 
         newcom = scons_subst("test ${SOURCE.abspath}", loc, {})
-        assert newcom == cvt("test %s/foo/blah.cpp"%os.getcwd()), newcom
+        assert newcom == cvt("test %s/foo/blah.cpp"%SCons.Util.updrive(os.getcwd())), newcom
 
         newcom = scons_subst("test $xxx", loc, {})
         assert newcom == cvt("test"), newcom
index 97ad0ce29c41462b010c94f0ec484ec0db9d3165..b25a1b62e0ee542f31697004eefc86537f59608d 100644 (file)
@@ -167,8 +167,7 @@ test.fail_test(test.read('test5' + _exe) != "This is a .spp file.\n")
 test.fail_test(test.read('test6' + _exe) != "This is a .SPP file.\n")
 
 
-
-as = test.where_is('as')
+as = test.detect('AS', 'as')
 
 if as:
 
index 14708e01ee03059e0cab572ee255e2ba387bc3b6..04a084f12f321c400698fc0e86b5e889e178d11f 100644 (file)
@@ -39,7 +39,7 @@ else:
 
 test = TestSCons.TestSCons()
 
-ranlib = test.where_is('ranlib')
+ranlib = test.detect('RANLIB', 'ranlib')
 
 test.no_result(not ranlib)
 
index b3e94510d917552ed0129dc6c485c1b8c56c384c..80aaf1610e626b8d18786a1f31b40a3c4d1aece9 100644 (file)
@@ -38,7 +38,7 @@ else:
 
 test = TestSCons.TestSCons()
 
-ranlib = test.where_is('ranlib')
+ranlib = test.detect('RANLIB', 'ranlib')
 
 test.no_result(not ranlib)
 
index 96088994ee9d914c724e9203e8105cc90fa48b2b..461f4148e9a444a5d2fbbd9183ff4112b9f88bdd 100644 (file)
@@ -73,10 +73,10 @@ kscan = Scanner(name = 'kfile',
 scanners = Environment().Dictionary('SCANNERS')
 env = Environment(SCANNERS = scanners + [kscan])
 
-env.Command('foo', 'foo.k', '%s build.py $SOURCES $TARGET')
+env.Command('foo', 'foo.k', r'%s build.py $SOURCES $TARGET')
 
 bar_in = File('bar.in')
-env.Command('bar', bar_in, '%s build.py $SOURCES  $TARGET')
+env.Command('bar', bar_in, r'%s build.py $SOURCES  $TARGET')
 bar_in.source_scanner = kscan
 """ % (python, python))
 
index ee9e7d415957c1fbd5670e45628527f7a6cebef2..fbfacf6b90fd8862ad888dcae66d5533b335df26 100644 (file)
@@ -82,8 +82,7 @@ test.run(arguments = 'bbb.tar', stderr = None)
 test.fail_test(test.read('bbb.tar') != "sub1/file5\nsub1/file6\nfile4\n")
 
 
-
-tar = test.where_is('tar')
+tar = test.detect('TAR', 'tar')
 
 if tar:
 
@@ -95,9 +94,9 @@ os.system(string.join(sys.argv[1:], " "))
 """ % string.replace(test.workpath('wrapper.out'), '\\', '\\\\'))
 
     test.write('SConstruct', """
-foo = Environment(tools = ['tar'])
+foo = Environment()
 tar = foo.Dictionary('TAR')
-bar = Environment(tools = ['tar'], TAR = r'%s wrapper.py ' + tar)
+bar = Environment(TAR = r'%s wrapper.py ' + tar)
 foo.Tar(target = 'foo.tar', source = ['file10', 'file11'])
 foo.Tar(target = 'foo.tar', source = 'file12')
 bar.Tar(target = 'bar.tar', source = ['file13', 'file14'])
index 9bf1359e1915ab74e284c6f76f4fef2e7436b8ab..583e274255921f16a72461b234ab114e62f62f12 100644 (file)
@@ -87,7 +87,7 @@ test.fail_test(test.read('bbb.tar') != "options:  -x\nsub1/file5\nsub1/file6\nfi
 
 
 
-tar = test.where_is('tar')
+tar = test.detect('TAR', 'tar')
 
 if tar:
 
@@ -99,11 +99,10 @@ os.system(string.join(sys.argv[1:], " "))
 """ % string.replace(test.workpath('wrapper.out'), '\\', '\\\\'))
 
     test.write('SConstruct', """
-foo = Environment(tools = ['tar'])
+foo = Environment()
 tar = foo['TAR']
-bar = Environment(tools = ['tar'],
-                  TAR = '',
-                 TARFLAGS = '%s wrapper.py ' + tar + ' -c -b 1')
+bar = Environment(TAR = '',
+                 TARFLAGS = r'%s wrapper.py ' + tar + ' -c -b 1')
 foo.Tar(target = 'foo.tar', source = ['file10', 'file11'])
 foo.Tar(target = 'foo.tar', source = 'file12')
 bar.Tar(target = 'bar.tar', source = ['file13', 'file14'])
index dbfbb3e605a09d4591f9b7da00fb4ec4ac99b6b8..67517cd879e86b379229bfc8930499f600a62f3a 100644 (file)
@@ -44,7 +44,7 @@ file.close()
 
 test.write('SConstruct', """
 import SCons.Defaults
-B = Builder(action='%s build.py $TARGET $SOURCES')
+B = Builder(action=r'%s build.py $TARGET $SOURCES')
 env = Environment()
 env['BUILDERS']['B'] = B
 env.B(target = 'sub1/foo.out', source = 'sub1/foo.in')
index efb192a11ea45c5dba891a5e94248a331e1c74c5..c6f21317c2d8d82d43ccc1fc906c7afbc4ab8ff3 100644 (file)
@@ -43,7 +43,7 @@ file.close()
 """)
 
 test.write('SConstruct', """
-B = Builder(action='%s build.py $TARGET $SOURCES')
+B = Builder(action=r'%s build.py $TARGET $SOURCES')
 env = Environment(BUILDERS = { 'B' : B })
 env.B(target = 'aaa.out', source = 'aaa.in')
 env.B(target = 'bbb.out', source = 'bbb.in')
index 54f4f4601c8bb7490c5f5a63bb0415fdcceb3552..5e00ea8dc05361e9df9b2815e2e8c87458b8103d 100644 (file)
@@ -46,7 +46,7 @@ file.close()
 test.write('SConstruct', """
 import SCons.Defaults
 env = Environment()
-env['BUILDERS']['B'] = Builder(action='%s build.py $TARGET $SOURCES')
+env['BUILDERS']['B'] = Builder(action=r'%s build.py $TARGET $SOURCES')
 env.B(target = 'sub1/foo.out', source = 'sub1/foo.in')
 Default('.')
 Export('env')