diff options
author | Steven Knight <knight@baldmt.com> | 2001-09-29 03:04:07 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2001-09-29 03:04:07 (GMT) |
commit | 8a28cfb1801cbada701e471b7ca9ea78db137221 (patch) | |
tree | 0f6709bb1973c4e903c2dda9e3fb1862b2194d8a | |
parent | 1740dba381b84692daa6b8e01eb4a52bf61330de (diff) | |
download | SCons-8a28cfb1801cbada701e471b7ca9ea78db137221.zip SCons-8a28cfb1801cbada701e471b7ca9ea78db137221.tar.gz SCons-8a28cfb1801cbada701e471b7ca9ea78db137221.tar.bz2 |
Add a test for unknown options (both short and long).
-rw-r--r-- | src/script/scons.py | 13 | ||||
-rw-r--r-- | test/option-unknown.py | 20 |
2 files changed, 29 insertions, 4 deletions
diff --git a/src/script/scons.py b/src/script/scons.py index d1cffbf..85f869c 100644 --- a/src/script/scons.py +++ b/src/script/scons.py @@ -496,6 +496,8 @@ def UsageString(): def main(): global scripts, help_option, num_jobs + targets = [] + # It looks like 2.0 changed the name of the exception class # raised by getopt. try: @@ -515,10 +517,13 @@ def main(): for opt, arg in cmd_opts: opt_func[opt](opt, arg) - cmd_opts, targets = getopt.getopt(sys.argv[1:], short_opts, long_opts) - - for opt, arg in cmd_opts: - opt_func[opt](opt, arg) + try: + cmd_opts, targets = getopt.getopt(sys.argv[1:], short_opts, long_opts) + except getopt_err, x: + _scons_user_error(x) + else: + for opt, arg in cmd_opts: + opt_func[opt](opt, arg) if not scripts: for file in ['SConstruct', 'Sconstruct', 'sconstruct']: diff --git a/test/option-unknown.py b/test/option-unknown.py new file mode 100644 index 0000000..28d3ceb --- /dev/null +++ b/test/option-unknown.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" + +import TestSCons +import string +import sys + +test = TestSCons.TestSCons() + +test.write('SConstruct', "") + +test.run(arguments = '-Z', + stderr = '\nSCons error: option -Z not recognized\nFile "\S+", line \d+, in short_has_arg\n') + +test.run(arguments = '--ZizzerZazzerZuzz', + stderr = '\nSCons error: option --ZizzerZazzerZuzz not recognized\nFile "\S+", line \d+, in long_has_args\n') + +test.pass_test() + |