Skip to content

Commit 5e12ec3

Browse files
Merge pull request #4696 from bruntib/cppcheck_version_fix
[fix] Cppcheck version parse fix
2 parents 2d78d5d + f39ed19 commit 5e12ec3

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

analyzer/codechecker_analyzer/analyzers/cppcheck/analyzer.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,12 @@ def parse_version(cppcheck_output) -> Optional[Version]:
6767
version_re = re.compile(r'^Cppcheck(.*?)(?P<version>[\d\.]+)')
6868
match = version_re.match(cppcheck_output)
6969
if match:
70-
return Version.parse(match.group('version'))
70+
version = match.group('version')
71+
# semver.Version handles only version numbers with 3 sections.
72+
# For example: 2.7.0
73+
if version.count('.') < 2: # Cppcheck 2.7
74+
version += '.0'
75+
return Version.parse(version)
7176
return None
7277

7378

analyzer/tests/unit/test_cppcheck_version_parsing.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,6 @@ def test_cppcheck_version(self):
2828
self.assertEqual(
2929
parse_version('Cppcheck Premium 1.2.3'),
3030
Version(1, 2, 3))
31+
self.assertEqual(
32+
parse_version('Cppcheck 2.7'),
33+
Version(2, 7, 0))

0 commit comments

Comments
 (0)