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:
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']:
--- /dev/null
+#!/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()
+