diff options
author | Steven Knight <knight@baldmt.com> | 2001-09-12 02:20:03 +0000 |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2001-09-12 02:20:03 +0000 |
commit | e3e7b09d110ace0334c941eec930f3d651fe1151 (patch) | |
tree | e22e75f5e4a2a5aa75afd5e9fc3d7d1d76082da5 | |
parent | 08994e034cbc908eefe3e8acf3f002da68e77243 (diff) | |
download | scons-e3e7b09d110ace0334c941eec930f3d651fe1151.tar.gz |
Fixes for -f end cases.
-rw-r--r-- | src/scons.py | 10 | ||||
-rw-r--r-- | test/errors.py | 2 | ||||
-rw-r--r-- | test/option-f.py | 19 |
3 files changed, 29 insertions, 2 deletions
diff --git a/src/scons.py b/src/scons.py index f515beaf..16fb0bf3 100644 --- a/src/scons.py +++ b/src/scons.py @@ -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 diff --git a/test/errors.py b/test/errors.py index 04eac9e5..a4b05cc6 100644 --- a/test/errors.py +++ b/test/errors.py @@ -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 diff --git a/test/option-f.py b/test/option-f.py index 4ea2ee9b..b9dbd75f 100644 --- a/test/option-f.py +++ b/test/option-f.py @@ -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() |