[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/3] xen/misra: xen-analysis.py: allow cppcheck version above 2.7
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" + ) # If misra option is selected, append misra addon and generate cppcheck # files for misra analysis -- 2.34.1
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |