[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


  • To: Luca Fancellu <luca.fancellu@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Thu, 4 May 2023 14:19:42 +0100
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=citrix.com; dmarc=pass action=none header.from=citrix.com; dkim=pass header.d=citrix.com; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=iDyUL6c239KtTq3SoHXH9sj+wF/BRaLca3LyaXl6eQ0=; b=kUpNUk+r8j9TP+e9Nlx2hZTXnQlEnCSXkcpBlZY0IQI4bwZu+QdUHIjaN7TrbwHcCJlejRJEERwjIgDbt0NK+iQWqVXXr/jrB6upoZJM4csl8dBChxnXmfcX0jK1r33Sw+Q6UKMiqLjhLHy9Tn8bDHjiX+Og3wJfDPGw4pX28q6shjIMnh050unNKBWt4W9MQcqLaK/zpjUNnfq5nHgo3K6s0PQO6eF3g4X606aNaZnExgIN9yudi6cm2eHOBycaToITthVSTlltRQkjPFFSW8NizbG32K3c1tWfQ2GBp2XhsGSIanfRGTDjCMxJ7L2GDKy8Be+IYC1qY/X58aRB2w==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IGbnkgxIKmZIO18QB4usrN37TLLNi5R4ewd+L/XJ1KauANr92jd7ufze4bTO8z9vLOPvaVnYo1nyaZN1k0RALLu4kBhTSM3xPks1oNoa1BNmnLNczcsBANU3c13w9OSMrSXIKL1DZAWSTsLnOG4xTBY/D47MvVsr+fwOBPbXPyaBmuoVDKtlSHBVlYS3tYtGhBTnQ2NgC/pz0Zp8ByOKIXl1G+OAh638uzT6oYxVXboVSJZLvpzbR5wcw9zRR+2cNoxfPZB+8mOtgK4wAldEX2fT7LvYvYvTGnR3550zRKnLYWXL8Bn9PWl0qYSjKgnvOncEDFIHXuimhUZ+Hn+Z8g==
  • Authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=citrix.com;
  • Cc: bertrand.marquis@xxxxxxx, wei.chen@xxxxxxx, George Dunlap <george.dunlap@xxxxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Thu, 04 May 2023 13:20:04 +0000
  • Ironport-data: A9a23:1AGOHasJJBfMiMb7xEctD6ZqLufnVMFfMUV32f8akzHdYApBsoF/q tZmKTrSPq6MN2Gjed53Otvk/UMAu5GHx9E2S1c5rio0Qi8b+JbJXdiXEBz9bniYRiHhoOCLz O1FM4Wdc5pkJpP4jk3wWlQ0hSAkjclkfpKlVKiffHg3HVQ+IMsYoUoLs/YjhYJ1isSODQqIu Nfjy+XSI1bg0DNvWo4uw/vrRChH4bKj6Vv0gnRkPaoQ5AKGyyFMZH4iDfrZw0XQE9E88tGSH 44v/JnhlkvF8hEkDM+Sk7qTWiXmlZaLYGBiIlIPM0STqkAqSh4ai87XB9JFAatjsB2bnsgZ9 Tl4ncfYpTHFnEH7sL91vxFwS0mSNEDdkVPNCSDXXce7lyUqf5ZwqhnH4Y5f0YAwo45K7W9yG fMwLGEcMDu7xPuP3b+mcNs0mMAHBZa2M9ZK0p1g5Wmx4fcOZ7nmG/+P3vkBmTA6i4ZJAOrUY NcfZXx3dhPcbhZTO1ARTpUjgOOvgXq5eDpdwL6XjfNvvy6Pk0osj/6xbLI5efTTLSlRtm+eq njL4CLSBRYCOcbE4TGE7mitlqnEmiaTtIc6TeTgraY22wHKroAVIBQzbHG9i/WXsXKBAexxC 0EM5zEDl6dnoSRHSfG4BXVUukWsugMXUpxeGusx5QWJ14Ld+QPfDW8BJhZRZdpjuMIoSDgC0 l6Sg8ivFTFpqKeSS3+W6vGTtzzaESIYN3MYbCkICw4M+cD+oZobhwjKCN1kFcadkdD0Xzrwz jaipTI7wb4UiKYj1a+24FTGiDKEvYXSQ0g+4QC/dmC46gJ0Yqa1aoru7kLUhd5bN5qQRFSFu HkCmuCd4foIAJXLkzaCKM0SGJm56vDDNyfT6WODBLEk/jWpvmWlJIZZ5WkkIF8zappYPzj0f EXUpAVdoodJO2enZrN2ZIT3DNk2ya/nFpLuUfW8gsdyX6WdvTSvpElGDXN8FUi0+KTwucnT4 aumTPs=
  • Ironport-hdrordr: A9a23:qegiyqmS5nY/5xCUUqVTIKaKi4jpDfOtimdD5ihNYBxZY6Wkfp +V8cjzhCWftN9OYhodcIi7SdK9qXO1z+8X3WBjB8bZYOCGghriEGgG1+ffKlLbakrDH4JmtJ uINpIOcOEYbmIKx/oSgjPIderIqePvmM/HuQ6d9QYVcegAUdAD0+4NMHf+LqQAfngiOXNWLv qhz/sCgwDlVWUcb8y9CHVAdfPEvcf3mJXvZgNDLwI76SGV5AnYpILSIly95FMzQjlPybAt/S zuiAri/JiutPm911v1y3LT1ZJLg9Hso+EzS/Bky/JlZAkEuDzYJLiJaIfy/wzdZ9vfqmrCpe O84ivI+f4Drk85MFvF5ScFkDOQrQrGo0WStWNwx0GT7PARDQhKdPZplMZXdADU5FEnu8w52K VX33iBv54SFh/Ymj/hjuK4IS2Cu3DE1UbKq9Rj+EB3QM8bcvtcvIYf9ERaHNMJGz/78pkuFK 1rANvH7PhbfFuGZzSB11MfiOCETzA2BFOLU0ICssua33xfm2141VIRwIgakm0b/JwwRpFY76 DPM7hulrtJUsgKBJgNTdspUI+yECjAUBjMOGWdLRDuE7wGIWvEr9rt7LA89IiRCek1JNdYou WzbLqZjx9BR6vDM7z/4HQQyGGyfIyUZ0Wd9v1j
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 04/05/2023 2:12 pm, 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>
> ---
>  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"
> +        )

Python sorts tuples the helpful way around, so for example

v = (2, 9)

if v < (2, 7) or v == (2, 8):
    # handle error

does what you want, and far more concisely.

~Andrew



 


Rackspace

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