[PATCH v1] scripts: coccicheck: filter *.cocci files by MODE

Songwei Chai posted 1 patch 6 months, 2 weeks ago
There is a newer version of this series
scripts/coccicheck | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH v1] scripts: coccicheck: filter *.cocci files by MODE
Posted by Songwei Chai 6 months, 2 weeks ago
Enhance the coccicheck script to filter *.cocci files based on the
specified MODE (e.g., report, patch). This ensures that only compatible
semantic patch files are executed, preventing errors such as:

    "virtual rule report not supported"

This error occurs when a .cocci file does not define a 'virtual <MODE>'
rule, yet is executed in that mode.

For example:

    make coccicheck M=drivers/hwtracing/coresight/ MODE=report

In this case, running "secs_to_jiffies.cocci" would trigger the error
because it lacks support for 'report' mode. With this change, such files
are skipped automatically, improving robustness and developer experience.

Signed-off-by: Songwei Chai <quic_songchai@quicinc.com>
---
 scripts/coccicheck | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/scripts/coccicheck b/scripts/coccicheck
index 0e6bc5a10320..18a69edcea66 100755
--- a/scripts/coccicheck
+++ b/scripts/coccicheck
@@ -270,7 +270,9 @@ fi
 
 if [ "$COCCI" = "" ] ; then
     for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' -type f | sort`; do
-	coccinelle $f
+        if grep -q "virtual[[:space:]]\+$MODE" "$f"; then
+	        coccinelle $f
+        fi
     done
 else
     coccinelle $COCCI
Re: [PATCH v1] scripts: coccicheck: filter *.cocci files by MODE
Posted by Nicolas Palix 6 months, 2 weeks ago
Hi Songwei,

Le 05/06/2025 à 06:44, Songwei Chai a écrit :
> Enhance the coccicheck script to filter *.cocci files based on the
> specified MODE (e.g., report, patch). This ensures that only compatible
> semantic patch files are executed, preventing errors such as:
> 
>      "virtual rule report not supported"
> 
> This error occurs when a .cocci file does not define a 'virtual <MODE>'
> rule, yet is executed in that mode.

I am fine with the idea even if the orignal idea was to be exhaustive in 
the implementation of the mode in each SP.

However, silently discarding the patch is maybe not what one would 
expect as the considered SP will vary according to the mode.

Hence, could I suggest to add an else branch reporting a warning at least ?

Regards,

> 
> For example:
> 
>      make coccicheck M=drivers/hwtracing/coresight/ MODE=report
> 
> In this case, running "secs_to_jiffies.cocci" would trigger the error
> because it lacks support for 'report' mode. With this change, such files
> are skipped automatically, improving robustness and developer experience.
> 
> Signed-off-by: Songwei Chai <quic_songchai@quicinc.com>
> ---
>   scripts/coccicheck | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/coccicheck b/scripts/coccicheck
> index 0e6bc5a10320..18a69edcea66 100755
> --- a/scripts/coccicheck
> +++ b/scripts/coccicheck
> @@ -270,7 +270,9 @@ fi
>   
>   if [ "$COCCI" = "" ] ; then
>       for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' -type f | sort`; do
> -	coccinelle $f
> +        if grep -q "virtual[[:space:]]\+$MODE" "$f"; then
> +	        coccinelle $f
> +        fi
>       done
>   else
>       coccinelle $COCCI
> 

Re: [PATCH v1] scripts: coccicheck: filter *.cocci files by MODE
Posted by Songwei Chai 6 months, 2 weeks ago
On 6/6/2025 1:43 AM, Nicolas Palix wrote:
> Hi Songwei,
>
> Le 05/06/2025 à 06:44, Songwei Chai a écrit :
>> Enhance the coccicheck script to filter *.cocci files based on the
>> specified MODE (e.g., report, patch). This ensures that only compatible
>> semantic patch files are executed, preventing errors such as:
>>
>>      "virtual rule report not supported"
>>
>> This error occurs when a .cocci file does not define a 'virtual <MODE>'
>> rule, yet is executed in that mode.
>
> I am fine with the idea even if the orignal idea was to be exhaustive 
> in the implementation of the mode in each SP.
>
> However, silently discarding the patch is maybe not what one would 
> expect as the considered SP will vary according to the mode.
>
> Hence, could I suggest to add an else branch reporting a warning at 
> least ?
>
> Regards,
Sure, will update patch with else branch reporting a warning.
>
>>
>> For example:
>>
>>      make coccicheck M=drivers/hwtracing/coresight/ MODE=report
>>
>> In this case, running "secs_to_jiffies.cocci" would trigger the error
>> because it lacks support for 'report' mode. With this change, such files
>> are skipped automatically, improving robustness and developer 
>> experience.
>>
>> Signed-off-by: Songwei Chai <quic_songchai@quicinc.com>
>> ---
>>   scripts/coccicheck | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/scripts/coccicheck b/scripts/coccicheck
>> index 0e6bc5a10320..18a69edcea66 100755
>> --- a/scripts/coccicheck
>> +++ b/scripts/coccicheck
>> @@ -270,7 +270,9 @@ fi
>>     if [ "$COCCI" = "" ] ; then
>>       for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' 
>> -type f | sort`; do
>> -    coccinelle $f
>> +        if grep -q "virtual[[:space:]]\+$MODE" "$f"; then
>> +            coccinelle $f
>> +        fi
>>       done
>>   else
>>       coccinelle $COCCI
>>
>