-
Notifications
You must be signed in to change notification settings - Fork 363
/
importing_cppcheck_reports.feature
107 lines (98 loc) · 4.49 KB
/
importing_cppcheck_reports.feature
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Feature: Importing Cppcheck reports
As a SonarQube user,
I want to import the Cppcheck reports into SonarQube
In order to have all static code checking results in one place,
work with them, filter them etc. and derive metrics from them.
@SqApi67 @SqApi75 @SqApi76
Scenario: The reports are missing
Given the project "cppcheck_project"
When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=empty.xml"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
But the analysis log contains a line matching
"""
.*WARN.*The report '.*' seems to be empty, ignoring.
"""
And the number of violations fed is 0
@wip
Scenario: The report mentions an unknown rule
Given the project "cppcheck_project"
When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=rule_unknown.xml"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
But the analysis log contains a line matching
"""
.*ERROR.*Could not add the issue.*The rule '.*' does not exist.
"""
And the number of violations fed is 0
@SqApi67 @SqApi75 @SqApi76
Scenario: The reports use paths relative to directories listed in sonar.sources
Given the project "cppcheck_project"
When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=relative-to-src.xml"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
But the analysis log contains a line matching
"""
.*WARN.*Cannot find the file .* skipping violations
"""
And the number of violations fed is 0
@SqApi67 @SqApi75 @SqApi76
Scenario: The reports and issues in the reports have absolute paths
Given the project "cppcheck_with_absolute_paths_project"
And platform is not "Windows"
When I run "sonar-scanner -X"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
And the number of violations fed is 6
@SqApi67 @SqApi75 @SqApi76
Scenario Outline: The reports are invalid
Given the project "cppcheck_project"
When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=<reportpath>"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
But the analysis log contains a line matching
"""
.*ERROR.*Report .* cannot be parsed
"""
And the number of violations fed is <violations>
Examples:
| reportpath | violations |
| unparsable.xml | 0 |
| wrongly_encoded.xml | 0 |
@SqApi67 @SqApi75 @SqApi76
Scenario Outline: Importing Cppcheck reports
Given the project "cppcheck_project"
When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=<reportpath>"
Then the analysis finishes successfully
And the analysis in server has completed
And the server log (if locatable) contains no error/warning messages
And the analysis log contains no error/warning messages except those matching:
"""
.*WARN.*Unable to get a valid mac address, will use a dummy address
"""
And the number of violations fed is <violations>
Examples:
| reportpath | violations |
| cppcheck-v1.xml | 6 |
| cppcheck-v2.xml | 6 |
# This doesnt work. We dont support reports outside of the projects directory,
# although there is no good reason for that(??)
#
# Scenario: The reports are outside the project directory
# Given the project "cppcheck_project"
# And a report outside the projects directory, e.g. "/tmp/cppcheck-v1.xml"
# When I run "sonar-scanner -X -Dsonar.cxx.cppcheck.reportPath=/tmp/cppcheck-v1.xml"
# Then the analysis finishes successfully
# And the analysis in server has completed
# And the server log (if locatable) contains no error/warning messages
# And the analysis log contains no error/warning messages
# And the number of violations fed is 7
# TOTEST:
# - behaviour on windows (windows paths in the reports,
# windows paths in the config pattern...)
# - custom rules scenario (precondition: we're able to register such a rule automaticly)