Fix broken cmdline parsing when --stop-on-failure in use.

Authored by mpyne on Dec 25 2018, 10:14 PM.

Description

Fix broken cmdline parsing when --stop-on-failure in use.

As reported in bug 402509, as position of command line argument changes
the module build list.

What was happening was --stop-on-failure in particular could 'eat' the
next command line argument, because even though it was manually
specified as a 'flag' argument to Getopt::Long, the 'stop-on-failure'
entry was then overridden in the function call to read options by
including the options in ksb::BuildContext::defaultGlobalFlags.

A coding error on my part caused this inclusion of options to treat the
options as requiring string values instead of boolean flags. As a result
Getopt::Long would read the next non-option value and assign it to the
'stop-on-failure' result.

Fixed by treating the included flags as boolean flags instead of string
valued, and by ensuring that the two sources for cmdline options are
fully disjoint. I also added a test that fails with the old code and
works with the new.

Fixes #8

BUG:402509
FIXED-IN:19.01

Details

Committed
mpyneDec 25 2018, 10:14 PM
Parents
R365:d285496cc466: cmdline: Make -v stand for --version, not --verbose.
Branches
Unknown
Tags
Unknown