|
[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 |