pmdtester 1.5.1 → 1.5.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 733a4296c7168a518aa22c6fde568d2b3bf966ee99711e17a06dac851605f290
4
- data.tar.gz: 5b900068f5483c479d6184600bcd78c20faf9b83bc9db2bbe12ec2c78d0328cd
3
+ metadata.gz: d64309fafec9b58208385b35297f4096da84511576ea23382e271b8bcf0bfcb0
4
+ data.tar.gz: d90d0ab024c076b3e6e13228d1fef303d63a34c1ce97ddb9169d798b94e63dde
5
5
  SHA512:
6
- metadata.gz: '039f00d21c56f0ae4c59ff5343e40a9ee9361c6514b2ab62e276c81877a3f4a59506639c2ad7c0be2eb0d3e2011698e2e6e16711ee97928519ba685a4dc1d139'
7
- data.tar.gz: 54cce64c7f1e995178a90d0a09da3b1afdf42a62e825fdc74827ef5b9ff453b102fc1e04e8c3ecf2fd797d7981b1079de72f883d849ba87fed1175db03b54e79
6
+ metadata.gz: 3201eaf56629cb6e859ded9c3522dc3907f50de3694ab1bdd11256f204e0c0fdd2e8bf5857ed0ee2291c02c257be091e6f36110c7c646d55281b0311ae7e9024
7
+ data.tar.gz: 7784defdc77b0c5d3f278232ed8f06e3326f3a17c2632e140b376dc1551640e0e0a35ed0d28770140cc6ed5d99ec96c8464dd92afc54f1a8b64421b15df47b72
@@ -20,8 +20,8 @@ jobs:
20
20
  continue-on-error: false
21
21
  if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
22
22
  steps:
23
- - uses: actions/checkout@v2
24
- - uses: actions/cache@v2
23
+ - uses: actions/checkout@v3
24
+ - uses: actions/cache@v3
25
25
  with:
26
26
  path: |
27
27
  ~/.m2/repository
@@ -12,8 +12,8 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  continue-on-error: false
14
14
  steps:
15
- - uses: actions/checkout@v2
16
- - uses: actions/cache@v2
15
+ - uses: actions/checkout@v3
16
+ - uses: actions/cache@v3
17
17
  with:
18
18
  path: |
19
19
  ~/.m2/repository
data/.rubocop.yml CHANGED
@@ -30,3 +30,6 @@ Metrics/BlockLength:
30
30
 
31
31
  Metrics/ModuleLength:
32
32
  CountAsOne: ['array', 'hash']
33
+
34
+ Metrics/ParameterLists:
35
+ CountKeywordArgs: false
data/History.md CHANGED
@@ -1,3 +1,16 @@
1
+ # 1.5.3 / 2022-11-25
2
+
3
+ ## Fixed Issues
4
+
5
+ * [#115](https://github.com/pmd/pmd-regression-tester/pull/115): Fix manual integration tests
6
+ * [#116](https://github.com/pmd/pmd-regression-tester/issues/116): Relative paths in pmd report result in missing code snippets
7
+
8
+ # 1.5.2 / 2022-10-20
9
+
10
+ ## Enhancements
11
+
12
+ * [#114](https://github.com/pmd/pmd-regression-tester/pull/114): Support new PMD 7 CLI interface
13
+
1
14
  # 1.5.1 / 2022-05-12
2
15
 
3
16
  ## Fixed Issues
data/Rakefile CHANGED
@@ -21,17 +21,17 @@ hoe = Hoe.spec 'pmdtester' do
21
21
  self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml Gemfile.lock]
22
22
  self.extra_deps += [
23
23
  ['nokogiri', '~> 1.13'],
24
- ['slop', '~> 4.6'],
24
+ ['slop', '~> 4.9'],
25
25
  ['differ', '~> 0.1'],
26
26
  ['rufus-scheduler', '~> 3.8'],
27
27
  ['logger-colors', '~> 1.0'],
28
- ['liquid', '~> 5.2']
28
+ ['liquid', '~> 5.4']
29
29
  ]
30
30
  self.extra_dev_deps += [
31
31
  ['hoe-bundler', '~> 1.5'],
32
32
  ['hoe-git', '~> 1.6'],
33
- ['minitest', '~> 5.10'],
34
- ['mocha', '~> 1.5'],
33
+ ['minitest', '~> 5.16'],
34
+ ['mocha', '~> 1.16'],
35
35
  # use the same version of rubocop as codacy
36
36
  ['rubocop', '~> 0.93'],
37
37
  ['test-unit', '~> 3.5'],
@@ -96,11 +96,10 @@ module PmdTester
96
96
 
97
97
  def generate_pmd_report(project)
98
98
  error_recovery_options = @error_recovery ? 'PMD_JAVA_OPTS="-Dpmd.error_recovery -ea" ' : ''
99
- run_path = "#{saved_distro_path(@pmd_branch_details.branch_last_sha)}/bin/run.sh"
100
- fail_on_violation = should_use_long_cli_options ? '--fail-on-violation false' : '-failOnViolation false'
99
+ fail_on_violation = should_use_long_cli_options? ? '--fail-on-violation false' : '-failOnViolation false'
101
100
  auxclasspath_option = create_auxclasspath_option(project)
102
101
  pmd_cmd = "#{error_recovery_options}" \
103
- "#{run_path} pmd -d #{project.local_source_path} -f xml " \
102
+ "#{determine_run_path} -d #{project.local_source_path} -f xml " \
104
103
  "-R #{project.get_config_path(@pmd_branch_name)} " \
105
104
  "-r #{project.get_pmd_report_path(@pmd_branch_name)} " \
106
105
  "#{fail_on_violation} -t #{@threads} " \
@@ -149,7 +148,7 @@ module PmdTester
149
148
 
150
149
  PmdReportDetail.create(execution_time: execution_time, timestamp: end_time,
151
150
  exit_code: exit_code, report_info_path: project.get_report_info_path(@pmd_branch_name))
152
- logger.info "#{project.name}'s PMD report was generated successfully"
151
+ logger.info "#{project.name}'s PMD report was generated successfully (exit code: #{exit_code})"
153
152
  end
154
153
 
155
154
  @pmd_branch_details.execution_time = sum_time
@@ -200,7 +199,7 @@ module PmdTester
200
199
  !Cmd.execute_successfully('git status --porcelain').empty?
201
200
  end
202
201
 
203
- def should_use_long_cli_options
202
+ def should_use_long_cli_options?
204
203
  logger.debug "PMD Version: #{@pmd_version}"
205
204
  Semver.compare(@pmd_version, '6.41.0') >= 0
206
205
  end
@@ -208,7 +207,7 @@ module PmdTester
208
207
  def create_auxclasspath_option(project)
209
208
  auxclasspath_option = ''
210
209
  unless project.auxclasspath.empty?
211
- auxclasspath_option = should_use_long_cli_options ? '--aux-classpath ' : '-auxclasspath '
210
+ auxclasspath_option = should_use_long_cli_options? ? '--aux-classpath ' : '-auxclasspath '
212
211
  auxclasspath_option += project.auxclasspath
213
212
  end
214
213
  auxclasspath_option
@@ -217,5 +216,16 @@ module PmdTester
217
216
  def pmd7?
218
217
  Semver.compare(@pmd_version, '7.0.0-SNAPSHOT') >= 0
219
218
  end
219
+
220
+ def determine_run_path
221
+ run_path = "#{saved_distro_path(@pmd_branch_details.branch_last_sha)}/bin"
222
+ run_path = if File.exist?("#{run_path}/pmd")
223
+ # New PMD 7 CLI script (pmd/pmd#4059)
224
+ "#{run_path}/pmd check"
225
+ else
226
+ "#{run_path}/run.sh pmd"
227
+ end
228
+ run_path
229
+ end
220
230
  end
221
231
  end
@@ -41,11 +41,11 @@ module PmdTester
41
41
  end
42
42
 
43
43
  def characters(string)
44
- @cur_text << remove_work_dir!(string)
44
+ @cur_text << string
45
45
  end
46
46
 
47
47
  def cdata_block(string)
48
- @cur_text << remove_work_dir!(string)
48
+ @cur_text << string
49
49
  end
50
50
 
51
51
  def end_element(name)
@@ -76,11 +76,12 @@ module PmdTester
76
76
  # Modifies the string in place and returns it
77
77
  # (this is what sub! does, except it returns nil if no replacement occurred)
78
78
  def remove_work_dir!(str)
79
- str.sub!(/#{@working_dir}/, '')
79
+ str.sub!(%r{#{@working_dir}/}, '')
80
80
  str
81
81
  end
82
82
 
83
83
  def finish_text!
84
+ remove_work_dir!(@cur_text)
84
85
  res = @cur_text.strip!.dup.freeze
85
86
  @cur_text.clear
86
87
  res
@@ -30,8 +30,6 @@ module PmdTester
30
30
  attr_reader :fname, :info_url, :line, :old_line, :old_message, :rule_name, :ruleset_name, :language
31
31
  attr_accessor :message
32
32
 
33
- # rubocop:disable Metrics/ParameterLists
34
- # Disable it: how is replacing a long parameter list with a single hash helping?
35
33
  def initialize(branch:, fname:, info_url:, bline:, rule_name:, ruleset_name:)
36
34
  @branch = branch
37
35
  @fname = fname
@@ -49,7 +47,6 @@ module PmdTester
49
47
  @old_message = nil
50
48
  @old_line = nil
51
49
  end
52
- # rubocop:enable Metrics/ParameterLists
53
50
 
54
51
  def line_move?(other)
55
52
  message.eql?(other.message) && (line - other.line).abs <= 5
@@ -60,17 +60,19 @@ module PmdTester
60
60
  # Change the file path from 'LOCAL_DIR/SOURCE_CODE_PATH' to
61
61
  # 'WEB_VIEW_URL/SOURCE_CODE_PATH'
62
62
  def get_webview_url(file_path)
63
- file_path.gsub(%r{/#{clone_root_path}}, @webview_url)
63
+ file_path.gsub(%r{^#{clone_root_path}/}, "#{@webview_url}/")
64
64
  end
65
65
 
66
66
  # Change the file path from 'LOCAL_DIR/SOURCE_CODE_PATH' to
67
67
  # 'PROJECT_NAME/SOURCE_CODE_PATH'
68
68
  def get_path_inside_project(file_path)
69
- file_path.gsub(%r{/#{clone_root_path}}, @name)
69
+ file_path.gsub(%r{^#{clone_root_path}/}, "#{@name}/")
70
70
  end
71
71
 
72
+ # Change the file path from 'LOCAL_DIR/SOURCE_CODE_PATH' to
73
+ # 'SOURCE_CODE_PATH'
72
74
  def get_local_path(file_path)
73
- file_path.sub(%r{/#{clone_root_path}/}, '')
75
+ file_path.sub(%r{^#{clone_root_path}/}, '')
74
76
  end
75
77
 
76
78
  def get_pmd_report_path(branch_name)
data/lib/pmdtester.rb CHANGED
@@ -33,7 +33,7 @@ require_relative 'pmdtester/parsers/projects_parser'
33
33
  # and unexpected behaviors will not be introduced to PMD project
34
34
  # after fixing an issue and new rules can work as expected.
35
35
  module PmdTester
36
- VERSION = '1.5.1'
36
+ VERSION = '1.5.3'
37
37
  BASE = 'base'
38
38
  PATCH = 'patch'
39
39
  PR_NUM_ENV_VAR = 'PMD_CI_PULL_REQUEST_NUMBER' # see PmdBranchDetail
data/pmdtester.gemspec CHANGED
@@ -1,17 +1,17 @@
1
1
  # DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.
2
2
 
3
3
  # -*- encoding: utf-8 -*-
4
- # stub: pmdtester 1.5.1 ruby lib
4
+ # stub: pmdtester 1.5.3 ruby lib
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pmdtester".freeze
8
- s.version = "1.5.1"
8
+ s.version = "1.5.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
11
11
  s.metadata = { "bug_tracker_uri" => "https://github.com/pmd/pmd-regression-tester/issues", "homepage_uri" => "https://pmd.github.io", "source_code_uri" => "https://github.com/pmd/pmd-regression-tester" } if s.respond_to? :metadata=
12
12
  s.require_paths = ["lib".freeze]
13
13
  s.authors = ["Andreas Dangel".freeze, "Binguo Bao".freeze, "Cl\u00E9ment Fournier".freeze]
14
- s.date = "2022-05-12"
14
+ s.date = "2022-11-25"
15
15
  s.description = "A regression testing tool ensure that new problems and unexpected behaviors will not be introduced to PMD project after fixing an issue , and new rules can work as expected.".freeze
16
16
  s.email = ["andreas.dangel@pmd-code.org".freeze, "djydewang@gmail.com".freeze, "clement.fournier76@gmail.com".freeze]
17
17
  s.executables = ["pmdtester".freeze]
@@ -30,34 +30,34 @@ Gem::Specification.new do |s|
30
30
 
31
31
  if s.respond_to? :add_runtime_dependency then
32
32
  s.add_runtime_dependency(%q<nokogiri>.freeze, ["~> 1.13"])
33
- s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.6"])
33
+ s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.9"])
34
34
  s.add_runtime_dependency(%q<differ>.freeze, ["~> 0.1"])
35
35
  s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 3.8"])
36
36
  s.add_runtime_dependency(%q<logger-colors>.freeze, ["~> 1.0"])
37
- s.add_runtime_dependency(%q<liquid>.freeze, ["~> 5.2"])
37
+ s.add_runtime_dependency(%q<liquid>.freeze, ["~> 5.4"])
38
38
  s.add_development_dependency(%q<hoe-bundler>.freeze, ["~> 1.5"])
39
39
  s.add_development_dependency(%q<hoe-git>.freeze, ["~> 1.6"])
40
- s.add_development_dependency(%q<minitest>.freeze, ["~> 5.10"])
41
- s.add_development_dependency(%q<mocha>.freeze, ["~> 1.5"])
40
+ s.add_development_dependency(%q<minitest>.freeze, ["~> 5.16"])
41
+ s.add_development_dependency(%q<mocha>.freeze, ["~> 1.16"])
42
42
  s.add_development_dependency(%q<rubocop>.freeze, ["~> 0.93"])
43
43
  s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.5"])
44
44
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.4"])
45
- s.add_development_dependency(%q<hoe>.freeze, ["~> 3.23"])
45
+ s.add_development_dependency(%q<hoe>.freeze, ["~> 3.26"])
46
46
  else
47
47
  s.add_dependency(%q<nokogiri>.freeze, ["~> 1.13"])
48
- s.add_dependency(%q<slop>.freeze, ["~> 4.6"])
48
+ s.add_dependency(%q<slop>.freeze, ["~> 4.9"])
49
49
  s.add_dependency(%q<differ>.freeze, ["~> 0.1"])
50
50
  s.add_dependency(%q<rufus-scheduler>.freeze, ["~> 3.8"])
51
51
  s.add_dependency(%q<logger-colors>.freeze, ["~> 1.0"])
52
- s.add_dependency(%q<liquid>.freeze, ["~> 5.2"])
52
+ s.add_dependency(%q<liquid>.freeze, ["~> 5.4"])
53
53
  s.add_dependency(%q<hoe-bundler>.freeze, ["~> 1.5"])
54
54
  s.add_dependency(%q<hoe-git>.freeze, ["~> 1.6"])
55
- s.add_dependency(%q<minitest>.freeze, ["~> 5.10"])
56
- s.add_dependency(%q<mocha>.freeze, ["~> 1.5"])
55
+ s.add_dependency(%q<minitest>.freeze, ["~> 5.16"])
56
+ s.add_dependency(%q<mocha>.freeze, ["~> 1.16"])
57
57
  s.add_dependency(%q<rubocop>.freeze, ["~> 0.93"])
58
58
  s.add_dependency(%q<test-unit>.freeze, ["~> 3.5"])
59
59
  s.add_dependency(%q<rdoc>.freeze, ["~> 6.4"])
60
- s.add_dependency(%q<hoe>.freeze, ["~> 3.23"])
60
+ s.add_dependency(%q<hoe>.freeze, ["~> 3.26"])
61
61
  end
62
62
  end
63
63
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pmdtester
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Dangel
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-05-12 00:00:00.000000000 Z
13
+ date: 2022-11-25 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '4.6'
35
+ version: '4.9'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '4.6'
42
+ version: '4.9'
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: differ
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -88,14 +88,14 @@ dependencies:
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: '5.2'
91
+ version: '5.4'
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: '5.2'
98
+ version: '5.4'
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: hoe-bundler
101
101
  requirement: !ruby/object:Gem::Requirement
@@ -130,28 +130,28 @@ dependencies:
130
130
  requirements:
131
131
  - - "~>"
132
132
  - !ruby/object:Gem::Version
133
- version: '5.10'
133
+ version: '5.16'
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - "~>"
139
139
  - !ruby/object:Gem::Version
140
- version: '5.10'
140
+ version: '5.16'
141
141
  - !ruby/object:Gem::Dependency
142
142
  name: mocha
143
143
  requirement: !ruby/object:Gem::Requirement
144
144
  requirements:
145
145
  - - "~>"
146
146
  - !ruby/object:Gem::Version
147
- version: '1.5'
147
+ version: '1.16'
148
148
  type: :development
149
149
  prerelease: false
150
150
  version_requirements: !ruby/object:Gem::Requirement
151
151
  requirements:
152
152
  - - "~>"
153
153
  - !ruby/object:Gem::Version
154
- version: '1.5'
154
+ version: '1.16'
155
155
  - !ruby/object:Gem::Dependency
156
156
  name: rubocop
157
157
  requirement: !ruby/object:Gem::Requirement
@@ -200,14 +200,14 @@ dependencies:
200
200
  requirements:
201
201
  - - "~>"
202
202
  - !ruby/object:Gem::Version
203
- version: '3.23'
203
+ version: '3.26'
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
208
  - - "~>"
209
209
  - !ruby/object:Gem::Version
210
- version: '3.23'
210
+ version: '3.26'
211
211
  description: A regression testing tool ensure that new problems and unexpected behaviors
212
212
  will not be introduced to PMD project after fixing an issue , and new rules can
213
213
  work as expected.