On Sat, Mar 06, 2021 at 05:05:41PM -0300, Davidson Francis wrote:
> As described in the Coccinelle documentation (Documentation/dev-tools/
> coccinelle.rst), chain mode should try patch, report, context, and org
> modes until one of them succeed.
> 
> It turns out that currently, the 'run_cmd_parmap' function, by failing
> to run $SPATCH, rather than returning an error code, kills the execution
> of the script by executing the exit command, rather than returning the
> error code.
> 
> This way, when running coccicheck in chain mode, as in:
>     $ make coccicheck MODE=chain
> 
> the first .cocci file that does not support one of the virtual rules
> stops the execution of the makefile, rather than trying the remaining
> rules as specified in the documentation.
> 
> Therefore, modify the coccicheck script to return the error code,
> rather than terminating the script. When returning the error code,
> it returns the same value obtained in run_cmd, instead of the
> generic value '1'.
> 
> Signed-off-by: Davidson Francis <davidsond...@gmail.com>
> ---
> Changes in v2:
> * Use the same return value from run_cmd as the exit value
> 
>  scripts/coccicheck | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/scripts/coccicheck b/scripts/coccicheck
> index 65fee63aeadb..165701657c5a 100755
> --- a/scripts/coccicheck
> +++ b/scripts/coccicheck
> @@ -153,7 +153,7 @@ run_cmd_parmap() {
>       err=$?
>       if [[ $err -ne 0 ]]; then
>               echo "coccicheck failed"
> -             exit $err
> +             return $err
>       fi
>  }
>  
> @@ -251,14 +251,14 @@ coccinelle () {
>       run_cmd $SPATCH -D context \
>               $FLAGS --cocci-file $COCCI $OPT $OPTIONS               || \
>       run_cmd $SPATCH -D org     \
> -             $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff || exit 
> 1
> +             $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff || exit 
> $?
>      elif [ "$MODE" = "rep+ctxt" ] ; then
>       run_cmd $SPATCH -D report  \
>               $FLAGS --cocci-file $COCCI $OPT $OPTIONS --no-show-diff && \
>       run_cmd $SPATCH -D context \
> -             $FLAGS --cocci-file $COCCI $OPT $OPTIONS || exit 1
> +             $FLAGS --cocci-file $COCCI $OPT $OPTIONS || exit $?
>      else
> -     run_cmd $SPATCH -D $MODE   $FLAGS --cocci-file $COCCI $OPT $OPTIONS || 
> exit 1
> +     run_cmd $SPATCH -D $MODE   $FLAGS --cocci-file $COCCI $OPT $OPTIONS || 
> exit $?
>      fi
>  
>  }
> -- 
> 2.29.1
> 

Ping for review.

Regards,
Davidson Francis.

_______________________________________________
Cocci mailing list
Cocci@systeme.lip6.fr
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to