pmdtester 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ci/build.sh +99 -0
- data/.ci/inc/fetch_ci_scripts.bash +19 -0
- data/.ci/manual-integration-tests.sh +37 -0
- data/.github/workflows/build.yml +55 -0
- data/.github/workflows/manual-integration-tests.yml +43 -0
- data/.gitignore +9 -0
- data/.hoerc +1 -1
- data/.rubocop.yml +9 -2
- data/.ruby-version +1 -0
- data/History.md +79 -0
- data/Manifest.txt +28 -9
- data/README.rdoc +59 -33
- data/Rakefile +7 -5
- data/config/all-java.xml +1 -1
- data/config/design.xml +1 -1
- data/config/project-list.xml +8 -7
- data/config/projectlist_1_0_0.xsd +2 -1
- data/config/projectlist_1_1_0.xsd +31 -0
- data/config/projectlist_1_2_0.xsd +39 -0
- data/lib/pmdtester.rb +8 -7
- data/lib/pmdtester/builders/liquid_renderer.rb +130 -0
- data/lib/pmdtester/builders/pmd_report_builder.rb +107 -79
- data/lib/pmdtester/builders/project_builder.rb +105 -0
- data/lib/pmdtester/builders/project_hasher.rb +128 -0
- data/lib/pmdtester/builders/rule_set_builder.rb +96 -47
- data/lib/pmdtester/builders/simple_progress_logger.rb +4 -4
- data/lib/pmdtester/builders/summary_report_builder.rb +63 -131
- data/lib/pmdtester/collection_by_file.rb +55 -0
- data/lib/pmdtester/parsers/options.rb +24 -0
- data/lib/pmdtester/parsers/pmd_report_document.rb +72 -28
- data/lib/pmdtester/parsers/projects_parser.rb +2 -4
- data/lib/pmdtester/pmd_branch_detail.rb +35 -19
- data/lib/pmdtester/pmd_configerror.rb +23 -24
- data/lib/pmdtester/pmd_error.rb +34 -34
- data/lib/pmdtester/pmd_report_detail.rb +10 -13
- data/lib/pmdtester/pmd_tester_utils.rb +58 -0
- data/lib/pmdtester/pmd_violation.rb +66 -28
- data/lib/pmdtester/project.rb +42 -56
- data/lib/pmdtester/report_diff.rb +203 -109
- data/lib/pmdtester/resource_locator.rb +4 -0
- data/lib/pmdtester/runner.rb +67 -64
- data/pmdtester.gemspec +28 -37
- data/resources/_includes/diff_pill_row.html +6 -0
- data/resources/css/bootstrap.min.css +7 -0
- data/resources/css/datatables.min.css +36 -0
- data/resources/css/pmd-tester.css +132 -0
- data/resources/js/bootstrap.min.js +7 -0
- data/resources/js/code-snippets.js +73 -0
- data/resources/js/datatables.min.js +726 -0
- data/resources/js/jquery-3.2.1.slim.min.js +4 -0
- data/resources/js/jquery.min.js +2 -0
- data/resources/js/popper.min.js +5 -0
- data/resources/js/project-report.js +137 -0
- data/resources/project_diff_report.html +214 -0
- data/resources/project_index.html +113 -0
- data/resources/project_pmd_report.html +186 -0
- metadata +73 -25
- data/.travis.yml +0 -40
- data/lib/pmdtester/builders/diff_builder.rb +0 -31
- data/lib/pmdtester/builders/diff_report/configerrors.rb +0 -50
- data/lib/pmdtester/builders/diff_report/errors.rb +0 -71
- data/lib/pmdtester/builders/diff_report/violations.rb +0 -77
- data/lib/pmdtester/builders/diff_report_builder.rb +0 -99
- data/lib/pmdtester/builders/html_report_builder.rb +0 -56
- data/resources/css/maven-base.css +0 -155
- data/resources/css/maven-theme.css +0 -171
@@ -0,0 +1,186 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>PMD Report for {{project_name}}</title>
|
6
|
+
|
7
|
+
<link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css"/>
|
8
|
+
<link rel="stylesheet" type="text/css" href="../css/datatables.min.css"/>
|
9
|
+
<link rel="stylesheet" type="text/css" href="../css/pmd-tester.css">
|
10
|
+
|
11
|
+
<script src="../js/jquery-3.2.1.slim.min.js"></script>
|
12
|
+
<script src="../js/popper.min.js"></script>
|
13
|
+
<script src="../js/bootstrap.min.js"></script>
|
14
|
+
<script src="../js/datatables.min.js"></script>
|
15
|
+
<script src="../js/code-snippets.js"></script>
|
16
|
+
<!-- This is generated -->
|
17
|
+
<script src="./{{branch}}_data.js"></script>
|
18
|
+
|
19
|
+
</head>
|
20
|
+
<body>
|
21
|
+
<div class="section">
|
22
|
+
<h1>PMD Report for {{project_name}}</h1>
|
23
|
+
</div>
|
24
|
+
<div class="section">
|
25
|
+
<h2>Summary</h2>
|
26
|
+
<div class="section-content">
|
27
|
+
<table id="table-summary" class="table">
|
28
|
+
<thead>
|
29
|
+
<tr>
|
30
|
+
<th></th>
|
31
|
+
<th>{{branch | capitalize}}</th>
|
32
|
+
</tr>
|
33
|
+
</thead>
|
34
|
+
<tbody>
|
35
|
+
<tr>
|
36
|
+
<td class="item"><a href="#section-violations">Violations</a>
|
37
|
+
</td>
|
38
|
+
<td class="{{branch}}">{{report.violation_counts}}</td>
|
39
|
+
</tr>
|
40
|
+
<tr>
|
41
|
+
<td class="item"><a href="#section-errors">Errors</a></td>
|
42
|
+
<td class="{{branch}}">{{report.error_counts}}</td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td class="item"><a href="#section-configerrors">ConfigErrors</a></td>
|
46
|
+
<td class="{{branch}}">{{report.configerror_counts}}</td>
|
47
|
+
</tr>
|
48
|
+
<tr>
|
49
|
+
<td class="item">Execution time</td>
|
50
|
+
<td class="{{branch}}">{{report.execution_time}}</td>
|
51
|
+
</tr>
|
52
|
+
<tr>
|
53
|
+
<td class="item">Timestamp</td>
|
54
|
+
<td class="{{branch}}">{{report.timestamp}}</td>
|
55
|
+
</tr>
|
56
|
+
<tr>
|
57
|
+
<td class="item">Full Report</td>
|
58
|
+
<td class="{{branch}}"><a href="{{branch}}_pmd_report.xml">{{branch}}_pmd_report.xml</a></td>
|
59
|
+
</tr>
|
60
|
+
</tbody>
|
61
|
+
</table>
|
62
|
+
</div>
|
63
|
+
</div>
|
64
|
+
|
65
|
+
<div class="section" id="section-rule-summary">
|
66
|
+
|
67
|
+
<h2>Summary by rule</h2>
|
68
|
+
|
69
|
+
<div class="section-content">
|
70
|
+
|
71
|
+
<div class="table-responsive">
|
72
|
+
<table id="rule-summary" class="table">
|
73
|
+
<thead>
|
74
|
+
<tr>
|
75
|
+
<th>Rule</th>
|
76
|
+
<th>{{branch | capitalize}}</th>
|
77
|
+
</tr>
|
78
|
+
</thead>
|
79
|
+
<tbody>
|
80
|
+
|
81
|
+
{% assign sorted_rules = report.rules | sort: 'name' %}
|
82
|
+
|
83
|
+
{% for rule in sorted_rules %}
|
84
|
+
<tr id="rule-summary-{{rule.name}}">
|
85
|
+
<td class="rulename">
|
86
|
+
{{ rule.name }}
|
87
|
+
<span class="external-link-secondary"><a class="rulelink" href="{{rule.info_url}}" target="_blank" rel="noopener noreferrer">[doc]</a></span>
|
88
|
+
</td>
|
89
|
+
<td class="{{branch}}count">{{ rule.count }}</td>
|
90
|
+
</tr>
|
91
|
+
{% endfor %}
|
92
|
+
</tbody>
|
93
|
+
</table>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
<div class="section" id="section-violations">
|
98
|
+
|
99
|
+
<h2>Violations</h2>
|
100
|
+
|
101
|
+
<div class="section-content">
|
102
|
+
|
103
|
+
<table id="violationsTable" width="100%" class="table">
|
104
|
+
<thead>
|
105
|
+
<tr>
|
106
|
+
<th>Location (click row to expand)</th>
|
107
|
+
<th>Rule</th>
|
108
|
+
<th>Message</th>
|
109
|
+
<th>Type</th>
|
110
|
+
</tr>
|
111
|
+
</thead>
|
112
|
+
</table>
|
113
|
+
|
114
|
+
</div>
|
115
|
+
</div>
|
116
|
+
|
117
|
+
<div class="section" id="section-errors">
|
118
|
+
|
119
|
+
<h2>Errors</h2>
|
120
|
+
|
121
|
+
<div class="section-content">
|
122
|
+
|
123
|
+
<div class="table-responsive">
|
124
|
+
<table id="error-table" class="table">
|
125
|
+
<thead>
|
126
|
+
<tr>
|
127
|
+
<th>File</th>
|
128
|
+
<th>Description (click to expand)</th>
|
129
|
+
</tr>
|
130
|
+
</thead>
|
131
|
+
<tbody>
|
132
|
+
{% for error in report.errors %}
|
133
|
+
<tr id="error-{{forloop.index}}" class="accordion-toggle error-row" data-toggle="collapse" data-target="#error-{{forloop.index}}-expanded">
|
134
|
+
<td><a href="{{error.file_url}}" target="_blank" rel="noopener noreferrer">{{error.short_filename}}</a></td>
|
135
|
+
<td>{{error.short_message | escape | replace: error.filename, "<span class='meta-var'>$FILE</span>" }}</td>
|
136
|
+
</tr>
|
137
|
+
<tr>
|
138
|
+
<td class="row-hidden" colspan="2">
|
139
|
+
<div class="accordion-body collapse" id="error-{{forloop.index}}-expanded">
|
140
|
+
<div class="collapsed-content-padder">
|
141
|
+
<pre>
|
142
|
+
{{ error.stack_trace_html }}
|
143
|
+
</pre>
|
144
|
+
</div>
|
145
|
+
</div>
|
146
|
+
</td>
|
147
|
+
</tr>
|
148
|
+
{% endfor %}
|
149
|
+
</tbody>
|
150
|
+
</table>
|
151
|
+
</div>
|
152
|
+
|
153
|
+
</div>
|
154
|
+
</div>
|
155
|
+
|
156
|
+
<div class="section" id="section-configerrors">
|
157
|
+
|
158
|
+
<h2>ConfigErrors</h2>
|
159
|
+
|
160
|
+
<div class="section-content">
|
161
|
+
|
162
|
+
<div class="table-responsive">
|
163
|
+
<table id="configerror-table" class="table">
|
164
|
+
<thead>
|
165
|
+
<tr>
|
166
|
+
<th>Rule</th>
|
167
|
+
<th>Message</th>
|
168
|
+
</tr>
|
169
|
+
</thead>
|
170
|
+
<tbody>
|
171
|
+
{% for configerror in report.configerrors %}
|
172
|
+
<tr class="configerror-row">
|
173
|
+
<td>{{configerror.rule}}</td>
|
174
|
+
<td>{{configerror.message}}</td>
|
175
|
+
</tr>
|
176
|
+
{% endfor %}
|
177
|
+
</tbody>
|
178
|
+
</table>
|
179
|
+
</div>
|
180
|
+
</div>
|
181
|
+
</div>
|
182
|
+
|
183
|
+
<script src="../js/project-report.js"></script>
|
184
|
+
|
185
|
+
</body>
|
186
|
+
</html>
|
metadata
CHANGED
@@ -1,30 +1,31 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pmdtester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Dangel
|
8
8
|
- Binguo Bao
|
9
|
+
- Clément Fournier
|
9
10
|
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date:
|
13
|
+
date: 2021-06-20 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: nokogiri
|
16
17
|
requirement: !ruby/object:Gem::Requirement
|
17
18
|
requirements:
|
18
|
-
- - "
|
19
|
+
- - ">="
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
21
|
+
version: 1.11.0.rc4
|
21
22
|
type: :runtime
|
22
23
|
prerelease: false
|
23
24
|
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
requirements:
|
25
|
-
- - "
|
26
|
+
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
28
|
+
version: 1.11.0.rc4
|
28
29
|
- !ruby/object:Gem::Dependency
|
29
30
|
name: slop
|
30
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -67,6 +68,34 @@ dependencies:
|
|
67
68
|
- - "~>"
|
68
69
|
- !ruby/object:Gem::Version
|
69
70
|
version: '3.5'
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: logger-colors
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.0'
|
78
|
+
type: :runtime
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - "~>"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '1.0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: liquid
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '4.0'
|
92
|
+
type: :runtime
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '4.0'
|
70
99
|
- !ruby/object:Gem::Dependency
|
71
100
|
name: hoe-bundler
|
72
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -155,22 +184,22 @@ dependencies:
|
|
155
184
|
name: rdoc
|
156
185
|
requirement: !ruby/object:Gem::Requirement
|
157
186
|
requirements:
|
158
|
-
- - "<"
|
159
|
-
- !ruby/object:Gem::Version
|
160
|
-
version: '7'
|
161
187
|
- - ">="
|
162
188
|
- !ruby/object:Gem::Version
|
163
189
|
version: '4.0'
|
190
|
+
- - "<"
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '7'
|
164
193
|
type: :development
|
165
194
|
prerelease: false
|
166
195
|
version_requirements: !ruby/object:Gem::Requirement
|
167
196
|
requirements:
|
168
|
-
- - "<"
|
169
|
-
- !ruby/object:Gem::Version
|
170
|
-
version: '7'
|
171
197
|
- - ">="
|
172
198
|
- !ruby/object:Gem::Version
|
173
199
|
version: '4.0'
|
200
|
+
- - "<"
|
201
|
+
- !ruby/object:Gem::Version
|
202
|
+
version: '7'
|
174
203
|
- !ruby/object:Gem::Dependency
|
175
204
|
name: hoe
|
176
205
|
requirement: !ruby/object:Gem::Requirement
|
@@ -189,8 +218,9 @@ description: A regression testing tool ensure that new problems and unexpected b
|
|
189
218
|
will not be introduced to PMD project after fixing an issue , and new rules can
|
190
219
|
work as expected.
|
191
220
|
email:
|
192
|
-
- andreas.dangel@
|
221
|
+
- andreas.dangel@pmd-code.org
|
193
222
|
- djydewang@gmail.com
|
223
|
+
- clement.fournier76@gmail.com
|
194
224
|
executables:
|
195
225
|
- pmdtester
|
196
226
|
extensions: []
|
@@ -199,10 +229,16 @@ extra_rdoc_files:
|
|
199
229
|
- Manifest.txt
|
200
230
|
- README.rdoc
|
201
231
|
files:
|
232
|
+
- ".ci/build.sh"
|
233
|
+
- ".ci/inc/fetch_ci_scripts.bash"
|
234
|
+
- ".ci/manual-integration-tests.sh"
|
235
|
+
- ".github/workflows/build.yml"
|
236
|
+
- ".github/workflows/manual-integration-tests.yml"
|
237
|
+
- ".gitignore"
|
202
238
|
- ".hoerc"
|
203
239
|
- ".rubocop.yml"
|
204
240
|
- ".rubocop_todo.yml"
|
205
|
-
- ".
|
241
|
+
- ".ruby-version"
|
206
242
|
- Gemfile
|
207
243
|
- History.md
|
208
244
|
- LICENSE
|
@@ -214,18 +250,18 @@ files:
|
|
214
250
|
- config/design.xml
|
215
251
|
- config/project-list.xml
|
216
252
|
- config/projectlist_1_0_0.xsd
|
253
|
+
- config/projectlist_1_1_0.xsd
|
254
|
+
- config/projectlist_1_2_0.xsd
|
217
255
|
- lib/pmdtester.rb
|
218
|
-
- lib/pmdtester/builders/
|
219
|
-
- lib/pmdtester/builders/diff_report/configerrors.rb
|
220
|
-
- lib/pmdtester/builders/diff_report/errors.rb
|
221
|
-
- lib/pmdtester/builders/diff_report/violations.rb
|
222
|
-
- lib/pmdtester/builders/diff_report_builder.rb
|
223
|
-
- lib/pmdtester/builders/html_report_builder.rb
|
256
|
+
- lib/pmdtester/builders/liquid_renderer.rb
|
224
257
|
- lib/pmdtester/builders/pmd_report_builder.rb
|
258
|
+
- lib/pmdtester/builders/project_builder.rb
|
259
|
+
- lib/pmdtester/builders/project_hasher.rb
|
225
260
|
- lib/pmdtester/builders/rule_set_builder.rb
|
226
261
|
- lib/pmdtester/builders/simple_progress_logger.rb
|
227
262
|
- lib/pmdtester/builders/summary_report_builder.rb
|
228
263
|
- lib/pmdtester/cmd.rb
|
264
|
+
- lib/pmdtester/collection_by_file.rb
|
229
265
|
- lib/pmdtester/parsers/options.rb
|
230
266
|
- lib/pmdtester/parsers/pmd_report_document.rb
|
231
267
|
- lib/pmdtester/parsers/projects_parser.rb
|
@@ -233,14 +269,27 @@ files:
|
|
233
269
|
- lib/pmdtester/pmd_configerror.rb
|
234
270
|
- lib/pmdtester/pmd_error.rb
|
235
271
|
- lib/pmdtester/pmd_report_detail.rb
|
272
|
+
- lib/pmdtester/pmd_tester_utils.rb
|
236
273
|
- lib/pmdtester/pmd_violation.rb
|
237
274
|
- lib/pmdtester/project.rb
|
238
275
|
- lib/pmdtester/report_diff.rb
|
239
276
|
- lib/pmdtester/resource_locator.rb
|
240
277
|
- lib/pmdtester/runner.rb
|
241
278
|
- pmdtester.gemspec
|
242
|
-
- resources/
|
243
|
-
- resources/css/
|
279
|
+
- resources/_includes/diff_pill_row.html
|
280
|
+
- resources/css/bootstrap.min.css
|
281
|
+
- resources/css/datatables.min.css
|
282
|
+
- resources/css/pmd-tester.css
|
283
|
+
- resources/js/bootstrap.min.js
|
284
|
+
- resources/js/code-snippets.js
|
285
|
+
- resources/js/datatables.min.js
|
286
|
+
- resources/js/jquery-3.2.1.slim.min.js
|
287
|
+
- resources/js/jquery.min.js
|
288
|
+
- resources/js/popper.min.js
|
289
|
+
- resources/js/project-report.js
|
290
|
+
- resources/project_diff_report.html
|
291
|
+
- resources/project_index.html
|
292
|
+
- resources/project_pmd_report.html
|
244
293
|
homepage: https://pmd.github.io
|
245
294
|
licenses:
|
246
295
|
- BSD-2-Clause
|
@@ -258,15 +307,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
258
307
|
requirements:
|
259
308
|
- - ">="
|
260
309
|
- !ruby/object:Gem::Version
|
261
|
-
version: '2.
|
310
|
+
version: '2.7'
|
262
311
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
263
312
|
requirements:
|
264
313
|
- - ">="
|
265
314
|
- !ruby/object:Gem::Version
|
266
315
|
version: '0'
|
267
316
|
requirements: []
|
268
|
-
|
269
|
-
rubygems_version: 2.7.7
|
317
|
+
rubygems_version: 3.1.6
|
270
318
|
signing_key:
|
271
319
|
specification_version: 4
|
272
320
|
summary: A regression testing tool ensure that new problems and unexpected behaviors
|
data/.travis.yml
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
before_install:
|
3
|
-
- LOCAL_DIR=${HOME}/.cache/openjdk
|
4
|
-
- TARGET_DIR=${HOME}/openjdk11
|
5
|
-
- mkdir -p ${LOCAL_DIR}
|
6
|
-
- mkdir -p ${TARGET_DIR}
|
7
|
-
- DOWNLOAD_URL="https://pmd-code.org/openjdk/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz"
|
8
|
-
- OPENJDK_ARCHIVE=$(basename $DOWNLOAD_URL)
|
9
|
-
- if [ ! -e ${LOCAL_DIR}/${OPENJDK_ARCHIVE} ]; then wget --directory-prefix ${LOCAL_DIR} --timestamping --continue ${DOWNLOAD_URL}; fi
|
10
|
-
- tar --extract --file ${LOCAL_DIR}/${OPENJDK_ARCHIVE} -C ${TARGET_DIR} --strip-components=1
|
11
|
-
- export JAVA_HOME="${TARGET_DIR}"
|
12
|
-
- export PATH="${TARGET_DIR}/bin:${PATH}"
|
13
|
-
- java -version
|
14
|
-
script:
|
15
|
-
- rake check_manifest
|
16
|
-
- rake rubocop
|
17
|
-
- rake clean test
|
18
|
-
- rake clean integration-test
|
19
|
-
- rake install_gem
|
20
|
-
- pmdtester -h
|
21
|
-
|
22
|
-
before_deploy:
|
23
|
-
- git stash --all
|
24
|
-
- rake hoe:spec
|
25
|
-
|
26
|
-
deploy:
|
27
|
-
provider: rubygems
|
28
|
-
api_key:
|
29
|
-
secure: "PMohVxVpupi3qKmSWjny6ASPKiWpyZxMTluARs15tiRR4Pco3Ko+Z+Nk2F6XNZkY4q4zudS91JGtYeGzuBknI/tFB9S1LjR5RDe9cUbETlhpazBCaRvVFt0K8okb9JAWfVi+mnCG5saBn0Osxv/PKS2sVr/3dK9JFVncaYfRhIZfhB/LcdHMLpnlv94sr60SGPA8ITz3pj1dKe6E2wfqQjgD8RNOOLxtcTFeEZVHDuJn0gsKz+ou2Dyzth+2SksKKboosodWXNbAIx5xg+iVLZgGFluQknZ130G0PA6vJzMLWgLEjUtFDV1QtE80jP7LhuMOKXaXHa6NghHL7h3TiBO9/2SEdHSdIq5NeMm2f8qttLNqI15cgGolyUGd+K43tAdvNuJws+wbQsj53htGFLvSKPfwTxipn1Ppa1s6/bSeUQvtj/kXO6MnVdwTBNjlm791DaG8sC4WbvppLvrKPfpvqGoOfWj9h5PlB8SsaHyDtOB6oCYE354RxLJxaI6b4hcxleyz7mPmoPcKQjcPSM8i004lCCNAmPm0VMW/yTi1Z1iBq6+1OiW7fe6txJi9zCPhMzziz1EA0oQYBgu99Uy9wjHh8CkWXtZDx+WSYRxCZOJ6kFN72dgYQbIsn4kxzrjwCp+NN0woDPR0FXcuePNgAz2hBtAvbKdOC2OCQVw="
|
30
|
-
on:
|
31
|
-
tags: true
|
32
|
-
skip_cleanup: true
|
33
|
-
gem: pmdtester
|
34
|
-
gemspec: pmdtester.gemspec
|
35
|
-
|
36
|
-
cache:
|
37
|
-
directories:
|
38
|
-
- vendor/bundle
|
39
|
-
- "$HOME/.rvm/"
|
40
|
-
- "$HOME/.cache/openjdk"
|
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'nokogiri'
|
4
|
-
|
5
|
-
module PmdTester
|
6
|
-
# Building difference between two pmd xml files
|
7
|
-
class DiffBuilder
|
8
|
-
include PmdTester
|
9
|
-
# The schema of pmd xml report refers to
|
10
|
-
# http://pmd.sourceforge.net/report_2_0_0.xsd
|
11
|
-
def build(base_report_filename, patch_report_filename, base_info, patch_info, filter_set = nil)
|
12
|
-
report_diffs = ReportDiff.new
|
13
|
-
base_details, patch_details = report_diffs.calculate_details(base_info, patch_info)
|
14
|
-
base_report = parse_pmd_report(base_report_filename, BASE, base_details.working_dir,
|
15
|
-
filter_set)
|
16
|
-
patch_report = parse_pmd_report(patch_report_filename, PATCH, patch_details.working_dir)
|
17
|
-
report_diffs.calculate_violations(base_report.violations, patch_report.violations)
|
18
|
-
report_diffs.calculate_errors(base_report.errors, patch_report.errors)
|
19
|
-
report_diffs.calculate_configerrors(base_report.configerrors, patch_report.configerrors)
|
20
|
-
|
21
|
-
report_diffs
|
22
|
-
end
|
23
|
-
|
24
|
-
def parse_pmd_report(report_filename, branch, working_dir, filter_set = nil)
|
25
|
-
doc = PmdReportDocument.new(branch, working_dir, filter_set)
|
26
|
-
parser = Nokogiri::XML::SAX::Parser.new(doc)
|
27
|
-
parser.parse_file(report_filename) unless report_filename.nil?
|
28
|
-
doc
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|