[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/3] xen/misra: xen-analysis.py: allow cppcheck version above 2.7



On Thu, 4 May 2023, Luca Fancellu wrote:
> Allow the use of Cppcheck version above 2.7, exception for 2.8 which
> is known and documented do be broken.
> 
> Signed-off-by: Luca Fancellu <luca.fancellu@xxxxxxx>

Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Tested-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>


> ---
>  xen/scripts/xen_analysis/cppcheck_analysis.py | 20 +++++++++++++++----
>  1 file changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/scripts/xen_analysis/cppcheck_analysis.py 
> b/xen/scripts/xen_analysis/cppcheck_analysis.py
> index 658795bb9f5b..c3783e8df343 100644
> --- a/xen/scripts/xen_analysis/cppcheck_analysis.py
> +++ b/xen/scripts/xen_analysis/cppcheck_analysis.py
> @@ -157,13 +157,25 @@ def generate_cppcheck_deps():
>              "Error occured retrieving cppcheck version:\n{}\n\n{}"
>          )
>  
> -    version_regex = re.search('^Cppcheck (.*)$', invoke_cppcheck, flags=re.M)
> +    version_regex = re.search('^Cppcheck (\d+).(\d+)(?:.\d+)?$',
> +                              invoke_cppcheck, flags=re.M)
>      # Currently, only cppcheck version >= 2.7 is supported, but version 2.8 
> is
>      # known to be broken, please refer to docs/misra/cppcheck.txt
> -    if (not version_regex) or (not version_regex.group(1).startswith("2.7")):
> +    if (not version_regex) or len(version_regex.groups()) < 2:
>          raise CppcheckDepsPhaseError(
> -                "Can't find cppcheck version or version is not 2.7"
> -              )
> +            "Can't find cppcheck version or version not identified: "
> +            "{}".format(invoke_cppcheck)
> +        )
> +    major = int(version_regex.group(1))
> +    minor = int(version_regex.group(2))
> +    if major < 2 or (major == 2 and minor < 7):
> +        raise CppcheckDepsPhaseError(
> +            "Cppcheck version < 2.7 is not supported"
> +        )
> +    if major == 2 and minor == 8:
> +        raise CppcheckDepsPhaseError(
> +            "Cppcheck version 2.8 is known to be broken, see the 
> documentation"
> +        )
>  
>      # If misra option is selected, append misra addon and generate cppcheck
>      # files for misra analysis
> -- 
> 2.34.1
> 



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.