From: Jean Privat Date: Sat, 18 Apr 2015 09:47:09 +0000 (+0700) Subject: Merge: Option --keep-going X-Git-Tag: v0.7.4~19 X-Git-Url: http://nitlanguage.org?hp=aba22d750b15f3b7a2efc804ee5c7891a9a09add Merge: Option --keep-going Follow up of #959 and #1241. Now an option is exposed so people can happily try to use it on various tools that will turn them berserk and make them want to kill you. Pull-Request: #1270 Reviewed-by: Alexis Laferrière Reviewed-by: Romain Chanoir --- diff --git a/share/man/nitc.md b/share/man/nitc.md index b2e664a..bc21fd3 100644 --- a/share/man/nitc.md +++ b/share/man/nitc.md @@ -435,6 +435,11 @@ They are useless for a normal user. `--stub-man` : Generate a stub manpage in pandoc markdown format. +`--keep-going` +: Continue after errors, whatever the consequences. + +The tool does not stop after some errors but continue until it produces incorrect result, crashes, erases the hard drive, or just continue forever in an infinite loop. +This option is used to test the robustness of the tools by allowing phases to progress on incorrect data. # ENVIRONMENT VARIABLES diff --git a/src/toolcontext.nit b/src/toolcontext.nit index 645038e..8196aeb 100644 --- a/src/toolcontext.nit +++ b/src/toolcontext.nit @@ -365,6 +365,9 @@ class ToolContext # Option --stop-on-first-error var opt_stop_on_first_error = new OptionBool("Stop on first error", "--stop-on-first-error") + # Option --keep-going + var opt_keep_going = new OptionBool("Continue after errors, whatever the consequences", "--keep-going") + # Option --no-color var opt_no_color = new OptionBool("Do not use color to display errors and warnings", "--no-color") @@ -379,7 +382,7 @@ class ToolContext init do - option_context.add_option(opt_warn, opt_warning, opt_quiet, opt_stop_on_first_error, opt_no_color, opt_log, opt_log_dir, opt_nit_dir, opt_help, opt_version, opt_set_dummy_tool, opt_verbose, opt_bash_completion, opt_stub_man) + option_context.add_option(opt_warn, opt_warning, opt_quiet, opt_stop_on_first_error, opt_keep_going, opt_no_color, opt_log, opt_log_dir, opt_nit_dir, opt_help, opt_version, opt_set_dummy_tool, opt_verbose, opt_bash_completion, opt_stub_man) # Hide some internal options opt_stub_man.hidden = true @@ -485,6 +488,8 @@ The Nit language documentation and the source code of its tools and libraries ma # Set verbose level verbose_level = opt_verbose.value + if opt_keep_going.value then keep_going = true + if self.opt_quiet.value then self.opt_warn.value = 0 if opt_log_dir.value != null then log_directory = opt_log_dir.value.as(not null) diff --git a/tests/sav/test_toolcontext_args1.res b/tests/sav/test_toolcontext_args1.res index 6e0ca35..ad80c05 100644 --- a/tests/sav/test_toolcontext_args1.res +++ b/tests/sav/test_toolcontext_args1.res @@ -5,7 +5,7 @@ _DUMMY_TOOL() COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - opts="--warn --warning --quiet --stop-on-first-error --no-color --log --log-dir --nit-dir --help --version --set-dummy-tool --verbose --bash-completion --stub-man --option-a --option-b" + opts="--warn --warning --quiet --stop-on-first-error --keep-going --no-color --log --log-dir --nit-dir --help --version --set-dummy-tool --verbose --bash-completion --stub-man --option-a --option-b" if [[ ${cur} == -* ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 diff --git a/tests/sav/test_toolcontext_args2.res b/tests/sav/test_toolcontext_args2.res index b14caf6..464f929 100644 --- a/tests/sav/test_toolcontext_args2.res +++ b/tests/sav/test_toolcontext_args2.res @@ -4,6 +4,7 @@ Test for ToolContext, try --bash-completion. -w, --warning Show/hide a specific warning -q, --quiet Do not show warnings --stop-on-first-error Stop on first error + --keep-going Continue after errors, whatever the consequences --no-color Do not use color to display errors and warnings --log Generate various log files --log-dir Directory where to generate log files