Fixes for -f end cases.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 12 Sep 2001 02:20:03 +0000 (02:20 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Wed, 12 Sep 2001 02:20:03 +0000 (02:20 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@45 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/scons.py
test/errors.py
test/option-f.py

index f515beaf56e511ffed7136cc45cf426ec96f5057..16fb0bf33177f1737f0dd614d768c47784b8b98f 100644 (file)
@@ -516,7 +516,15 @@ def main():
 
     while Scripts:
         file, Scripts = Scripts[0], Scripts[1:]
-        execfile(file)
+       if file == "-":
+           exec sys.stdin
+       else:
+            try:
+               f = open(file, "r")
+           except IOError, s:
+               sys.stderr.write("Ignoring missing script '%s'\n" % file)
+           else:
+               exec f 
 
     if local_help:
        # They specified -h, but there was no Help() inside the
index 04eac9e569556f8cb9febde05922a92148d2f985..a4b05cc622a7557015b10c7e4e28e961a8ea993f 100644 (file)
@@ -49,7 +49,7 @@ expect = r"""Traceback \((most recent call|innermost) last\):
   File "%s", line \d+, in \?
     main\(\)
   File "%s", line \d+, in main
-    execfile\(file\)
+    exec f
   File "SConstruct3", line \d+, in \?
     raise InternalError, 'error inside'
 InternalError: error inside
index 4ea2ee9b360b23212dfad10c5ad1a9becc8bff14..b9dbd75f3d303c90237c97d5b590e7d854bbadac 100644 (file)
@@ -27,26 +27,45 @@ wpath = test.workpath()
 
 test.run(chdir = '.', arguments = '-f SConscript')
 test.fail_test(test.stdout() != ("SConscript %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '-f ' + subdir_BuildThis)
 test.fail_test(test.stdout() != ("subdir/BuildThis %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--file=SConscript')
 test.fail_test(test.stdout() != ("SConscript %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--file=' + subdir_BuildThis)
 test.fail_test(test.stdout() != ("subdir/BuildThis %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--makefile=SConscript')
 test.fail_test(test.stdout() != ("SConscript %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--makefile=' + subdir_BuildThis)
 test.fail_test(test.stdout() != ("subdir/BuildThis %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--sconstruct=SConscript')
 test.fail_test(test.stdout() != ("SConscript %s\n" % wpath))
+test.fail_test(test.stderr() != "")
 
 test.run(chdir = '.', arguments = '--sconstruct=' + subdir_BuildThis)
 test.fail_test(test.stdout() != ("subdir/BuildThis %s\n" % wpath))
+test.fail_test(test.stderr() != "")
+
+test.run(chdir = '.', arguments = '-f -', stdin = """
+import os
+print "STDIN " + os.getcwd()
+""")
+test.fail_test(test.stdout() != ("STDIN %s\n" % wpath))
+test.fail_test(test.stderr() != "")
+
+test.run(chdir = '.', arguments = '-f no_such_file')
+test.fail_test(test.stdout() != "")
+test.fail_test(test.stderr() != "Ignoring missing script 'no_such_file'\n")
 
 test.pass_test()