Merge: Option --keep-going
authorJean Privat <jean@pryen.org>
Sat, 18 Apr 2015 09:47:09 +0000 (16:47 +0700)
committerJean Privat <jean@pryen.org>
Sat, 18 Apr 2015 09:47:09 +0000 (16:47 +0700)
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 <alexis.laf@xymus.net>
Reviewed-by: Romain Chanoir <chanoir.romain@courrier.uqam.ca>

share/man/nitc.md
src/toolcontext.nit
tests/sav/test_toolcontext_args1.res
tests/sav/test_toolcontext_args2.res

index b2e664a..bc21fd3 100644 (file)
@@ -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
 
index 645038e..8196aeb 100644 (file)
@@ -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)
index 6e0ca35..ad80c05 100644 (file)
@@ -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
index b14caf6..464f929 100644 (file)
@@ -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