Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update rubocop configuration #125

Merged
merged 2 commits into from
Sep 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ inherit_from: .rubocop_todo.yml

AllCops:
TargetRubyVersion: 2.7
NewCops: enable
Include:
- 'lib/**/*'
- 'test/**/*'
Expand All @@ -13,7 +14,7 @@ AllCops:
- 'test/resources/**/*'
- 'vendor/**/*'

Metrics/LineLength:
Layout/LineLength:
Max: 120

Metrics/MethodLength:
Expand Down
1 change: 1 addition & 0 deletions History.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

## Enhancements
* [#123](https://github.com/pmd/pmd-regression-tester/pull/123): Support ruby 3.3.0
* [#125](https://github.com/pmd/pmd-regression-tester/pull/125): Update rubocop configuration

## Fixed Issues
* [#126](https://github.com/pmd/pmd-regression-tester/pull/126): Fix integration tests
Expand Down
26 changes: 13 additions & 13 deletions lib/pmdtester/builders/pmd_report_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def get_pmd_binary_file
logger.debug "#{@pmd_branch_name}: distro_path=#{distro_path}"
if File.directory?(distro_path)
logger.info "#{@pmd_branch_name}: Skipping packaging - saved version exists " \
" in #{distro_path}"
"in #{distro_path}"
else
build_pmd(into_dir: distro_path)
end
Expand Down Expand Up @@ -174,7 +174,7 @@ def checkout_build_branch

# working dir is dirty....
# we don't allow this because we need the SHA to address the zip file
logger.error "#{@pmd_branch_name}: Won\'t build without a clean working tree, " \
logger.error "#{@pmd_branch_name}: Won't build without a clean working tree, " \
'commit your changes'
end

Expand All @@ -186,8 +186,8 @@ def work_dir
# e.g. <cwd>/pmd-bin-<version>-<branch>-<sha>
def saved_distro_path(build_sha)
"#{work_dir}/pmd-bin-#{@pmd_version}" \
"-#{PmdBranchDetail.branch_filename(@pmd_branch_name)}" \
"-#{build_sha}"
"-#{PmdBranchDetail.branch_filename(@pmd_branch_name)}" \
"-#{build_sha}"
end

def wd_has_dirty_git_changes
Expand Down Expand Up @@ -247,15 +247,15 @@ def find_pmd_dist_target

def build_pmd_with_maven
logger.info "#{@pmd_branch_name}: Building PMD #{@pmd_version}..."
package_cmd = './mvnw clean package' \
" -s #{ResourceLocator.resource('maven-settings.xml')} " \
' -Pfor-dokka-maven-plugin' \
' -Dmaven.test.skip=true' \
' -Dmaven.javadoc.skip=true' \
' -Dmaven.source.skip=true' \
' -Dcheckstyle.skip=true' \
' -Dpmd.skip=true' \
' -T1C -B'
package_cmd = './mvnw clean package ' \
"-s #{ResourceLocator.resource('maven-settings.xml')} " \
'-Pfor-dokka-maven-plugin ' \
'-Dmaven.test.skip=true ' \
'-Dmaven.javadoc.skip=true ' \
'-Dmaven.source.skip=true ' \
'-Dcheckstyle.skip=true ' \
'-Dpmd.skip=true ' \
'-T1C -B'
logger.debug "#{@pmd_branch_name}: maven command: #{package_cmd}"
Cmd.execute_successfully(package_cmd)
end
Expand Down
4 changes: 2 additions & 2 deletions lib/pmdtester/builders/rule_set_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ def output_filter_set(rule_refs)
end

logger.info "Using filter based on patch config #{@options.patch_config}: " \
"#{@options.filter_set}"
"#{@options.filter_set}"
else
# if `rule_refs` is empty, then no filter can be used when comparing to the baseline
logger.info 'No filter when comparing patch to baseline'
Expand Down Expand Up @@ -90,7 +90,7 @@ def get_rule_refs(filenames)
def build_config_file(rule_refs)
if rule_refs.empty?
logger.debug 'All rules are used. Not generating a dynamic ruleset.'
logger.debug "Using the configured/default ruleset base_config=#{@options.base_config} "\
logger.debug "Using the configured/default ruleset base_config=#{@options.base_config} " \
"patch_config=#{@options.patch_config}"
return
end
Expand Down
2 changes: 1 addition & 1 deletion lib/pmdtester/collection_by_file.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ module PmdTester
class CollectionByFile
def initialize
# a hash of filename -> [list of items]
@hash = Hash.new([])
@hash = {}
@total = 0
end

Expand Down
5 changes: 3 additions & 2 deletions lib/pmdtester/parsers/options.rb
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,9 @@ def parse(argv)
'path to the file which contains the list of standard projects',
default: DEFAULT_LIST_PATH
o.string '-m', '--mode', mode_message, default: 'local'
o.integer '-t', '--threads', 'Sets the number of threads used by PMD.' \
' Set threads to 0 to disable multi-threading processing.', default: 1
o.integer '-t', '--threads',
'Sets the number of threads used by PMD. Set threads to 0 to disable ' \
'multi-threading processing.', default: 1
o.bool '-f', '--html-flag',
'whether to not generate the html diff report in single mode'
o.bool '-a', '--auto-gen-config',
Expand Down
6 changes: 1 addition & 5 deletions lib/pmdtester/parsers/projects_parser.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,7 @@ def parse(list_file)
errors = schema.validate(document)
raise ProjectsParserException.new(errors), "Schema validate failed: In #{list_file}" unless errors.empty?

projects = []
document.xpath('//project').each do |project|
projects.push(Project.new(project))
end
projects
document.xpath('//project').map { |project| Project.new(project) }
end

def schema_file_path
Expand Down
4 changes: 2 additions & 2 deletions lib/pmdtester/pmd_branch_detail.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ def initialize(branch_name)
@execution_time = 0
# the result of command 'java -version' is going to stderr
@jdk_version = Cmd.stderr_of('java -version')
@language = ENV['LANG'] # the locale
@language = ENV.fetch('LANG') # the locale

prnum = ENV[PR_NUM_ENV_VAR]
prnum = ENV.fetch(PR_NUM_ENV_VAR, 'false')
@pull_request = prnum == 'false' ? nil : prnum
end

Expand Down
2 changes: 1 addition & 1 deletion lib/pmdtester/runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def run

def clean
clean_target = 'target/reports'
FileUtils.remove_dir(clean_target) if Dir.exist?(clean_target)
FileUtils.rm_rf(clean_target)
end

def run_local_mode
Expand Down
4 changes: 2 additions & 2 deletions pmdtester.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ Gem::Specification.new do |s|
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=
s.require_paths = ["lib".freeze]
s.authors = ["Andreas Dangel".freeze, "Binguo Bao".freeze, "Cl\u00E9ment Fournier".freeze]
s.date = "2024-05-01"
s.date = "2024-09-05"
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
s.email = ["andreas.dangel@pmd-code.org".freeze, "djydewang@gmail.com".freeze, "clement.fournier76@gmail.com".freeze]
s.executables = ["pmdtester".freeze]
s.extra_rdoc_files = ["History.md".freeze, "Manifest.txt".freeze, "README.rdoc".freeze, "resources/js/README.md".freeze]
s.files = [".ci/build.sh".freeze, ".ci/inc/fetch_ci_scripts.bash".freeze, ".ci/manual-integration-tests.sh".freeze, ".github/workflows/build.yml".freeze, ".github/workflows/manual-integration-tests.yml".freeze, ".gitignore".freeze, ".hoerc".freeze, ".rubocop.yml".freeze, ".rubocop_todo.yml".freeze, "Gemfile".freeze, "History.md".freeze, "LICENSE".freeze, "Manifest.txt".freeze, "README.rdoc".freeze, "Rakefile".freeze, "bin/pmdtester".freeze, "config/all-java.xml".freeze, "config/design.xml".freeze, "config/project-list.xml".freeze, "config/projectlist_1_0_0.xsd".freeze, "config/projectlist_1_1_0.xsd".freeze, "config/projectlist_1_2_0.xsd".freeze, "lib/pmdtester.rb".freeze, "lib/pmdtester/builders/liquid_renderer.rb".freeze, "lib/pmdtester/builders/pmd_report_builder.rb".freeze, "lib/pmdtester/builders/project_builder.rb".freeze, "lib/pmdtester/builders/project_hasher.rb".freeze, "lib/pmdtester/builders/rule_set_builder.rb".freeze, "lib/pmdtester/builders/simple_progress_logger.rb".freeze, "lib/pmdtester/builders/summary_report_builder.rb".freeze, "lib/pmdtester/cmd.rb".freeze, "lib/pmdtester/collection_by_file.rb".freeze, "lib/pmdtester/parsers/options.rb".freeze, "lib/pmdtester/parsers/pmd_report_document.rb".freeze, "lib/pmdtester/parsers/projects_parser.rb".freeze, "lib/pmdtester/pmd_branch_detail.rb".freeze, "lib/pmdtester/pmd_configerror.rb".freeze, "lib/pmdtester/pmd_error.rb".freeze, "lib/pmdtester/pmd_report_detail.rb".freeze, "lib/pmdtester/pmd_tester_utils.rb".freeze, "lib/pmdtester/pmd_violation.rb".freeze, "lib/pmdtester/project.rb".freeze, "lib/pmdtester/report_diff.rb".freeze, "lib/pmdtester/resource_locator.rb".freeze, "lib/pmdtester/runner.rb".freeze, "lib/pmdtester/semver.rb".freeze, "pmdtester.gemspec".freeze, "resources/_includes/diff_pill_row.html".freeze, "resources/css/bootstrap-5.3.0-alpha3.min.css".freeze, "resources/css/datatables.min.css".freeze, "resources/css/pmd-tester.css".freeze, "resources/js/README.md".freeze, "resources/js/bootstrap-5.3.0-alpha3.min.js".freeze, "resources/js/code-snippets.js".freeze, "resources/js/datatables.min.js".freeze, "resources/js/jquery-3.6.4.slim.min.js".freeze, "resources/js/popper-2.11.7.min.js".freeze, "resources/js/project-report.js".freeze, "resources/project_diff_report.html".freeze, "resources/project_index.html".freeze, "resources/project_pmd_report.html".freeze]
s.files = [".ci/build.sh".freeze, ".ci/inc/fetch_ci_scripts.bash".freeze, ".ci/manual-integration-tests.sh".freeze, ".github/workflows/build.yml".freeze, ".github/workflows/manual-integration-tests.yml".freeze, ".gitignore".freeze, ".hoerc".freeze, ".rubocop.yml".freeze, ".rubocop_todo.yml".freeze, "Gemfile".freeze, "History.md".freeze, "LICENSE".freeze, "Manifest.txt".freeze, "README.rdoc".freeze, "Rakefile".freeze, "bin/pmdtester".freeze, "config/all-java.xml".freeze, "config/design.xml".freeze, "config/project-list.xml".freeze, "config/projectlist_1_0_0.xsd".freeze, "config/projectlist_1_1_0.xsd".freeze, "config/projectlist_1_2_0.xsd".freeze, "lib/pmdtester.rb".freeze, "lib/pmdtester/builders/liquid_renderer.rb".freeze, "lib/pmdtester/builders/pmd_report_builder.rb".freeze, "lib/pmdtester/builders/project_builder.rb".freeze, "lib/pmdtester/builders/project_hasher.rb".freeze, "lib/pmdtester/builders/rule_set_builder.rb".freeze, "lib/pmdtester/builders/simple_progress_logger.rb".freeze, "lib/pmdtester/builders/summary_report_builder.rb".freeze, "lib/pmdtester/cmd.rb".freeze, "lib/pmdtester/collection_by_file.rb".freeze, "lib/pmdtester/parsers/options.rb".freeze, "lib/pmdtester/parsers/pmd_report_document.rb".freeze, "lib/pmdtester/parsers/projects_parser.rb".freeze, "lib/pmdtester/pmd_branch_detail.rb".freeze, "lib/pmdtester/pmd_configerror.rb".freeze, "lib/pmdtester/pmd_error.rb".freeze, "lib/pmdtester/pmd_report_detail.rb".freeze, "lib/pmdtester/pmd_tester_utils.rb".freeze, "lib/pmdtester/pmd_violation.rb".freeze, "lib/pmdtester/project.rb".freeze, "lib/pmdtester/report_diff.rb".freeze, "lib/pmdtester/resource_locator.rb".freeze, "lib/pmdtester/runner.rb".freeze, "lib/pmdtester/semver.rb".freeze, "pmdtester.gemspec".freeze, "resources/_includes/diff_pill_row.html".freeze, "resources/css/bootstrap-5.3.0-alpha3.min.css".freeze, "resources/css/datatables.min.css".freeze, "resources/css/pmd-tester.css".freeze, "resources/js/README.md".freeze, "resources/js/bootstrap-5.3.0-alpha3.min.js".freeze, "resources/js/code-snippets.js".freeze, "resources/js/datatables.min.js".freeze, "resources/js/jquery-3.6.4.slim.min.js".freeze, "resources/js/popper-2.11.7.min.js".freeze, "resources/js/project-report.js".freeze, "resources/maven-settings.xml".freeze, "resources/project_diff_report.html".freeze, "resources/project_index.html".freeze, "resources/project_pmd_report.html".freeze]
s.homepage = "https://pmd.github.io".freeze
s.licenses = ["BSD-2-Clause".freeze]
s.rdoc_options = ["--main".freeze, "README.rdoc".freeze]
Expand Down
60 changes: 30 additions & 30 deletions test/integration_test_runner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ def setup
end

def test_local_mode
argv = '-r target/repositories/pmd -b pmd_releases/6.41.0 -bc config/design.xml' \
' -p master -pc config/design.xml -l test/resources/integration_test_runner/project-test.xml' \
' --threads ' + Etc.nprocessors.to_s
argv = '-r target/repositories/pmd -b pmd_releases/6.41.0 -bc config/design.xml ' \
'-p master -pc config/design.xml -l test/resources/integration_test_runner/project-test.xml ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand All @@ -32,10 +32,10 @@ def test_local_mode
end

def test_single_mode
argv = '-r target/repositories/pmd -m single' \
' -p pmd_releases/6.41.0 -pc config/design.xml' \
' -l test/resources/integration_test_runner/project-list-single.xml' \
' --threads ' + Etc.nprocessors.to_s
argv = '-r target/repositories/pmd -m single ' \
'-p pmd_releases/6.41.0 -pc config/design.xml ' \
'-l test/resources/integration_test_runner/project-list-single.xml ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand All @@ -51,11 +51,11 @@ def test_single_mode
end

def test_single_mode_with_html_flag_option
argv = '-r target/repositories/pmd -m single' \
' -p pmd_releases/6.41.0 -pc config/design.xml' \
' -l test/resources/integration_test_runner/project-list-single.xml' \
' -f' \
' --threads ' + Etc.nprocessors.to_s
argv = '-r target/repositories/pmd -m single ' \
'-p pmd_releases/6.41.0 -pc config/design.xml ' \
'-l test/resources/integration_test_runner/project-list-single.xml ' \
'-f ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand All @@ -74,8 +74,8 @@ def test_online_mode
base_branch = 'pmd_releases/7.0.0-rc1'
patch_branch = 'pmd_releases/7.0.0-rc2'
argv = "-r target/repositories/pmd -m online -b #{base_branch} -p #{patch_branch} " \
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/' \
' --threads ' + Etc.nprocessors.to_s
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/ ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand All @@ -94,15 +94,15 @@ def test_online_mode
def test_online_mode_different_project_list_and_config
# This test depends on the file pmd_releases_6.40.0-baseline.zip being available at:
# https://pmd-code.org/pmd-regression-tester/pmd_releases_6.40.0-baseline.zip
argv = '--local-git-repo target/repositories/pmd '\
'--mode online '\
'--base-branch pmd_releases/6.40.0 '\
'--patch-branch pmd_releases/6.41.0 '\
'--patch-config test/resources/integration_test_runner/patch-config.xml '\
'--list-of-project test/resources/integration_test_runner/project-list.xml '\
argv = '--local-git-repo target/repositories/pmd ' \
'--mode online ' \
'--base-branch pmd_releases/6.40.0 ' \
'--patch-branch pmd_releases/6.41.0 ' \
'--patch-config test/resources/integration_test_runner/patch-config.xml ' \
'--list-of-project test/resources/integration_test_runner/project-list.xml ' \
'--auto-gen-config ' \
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/' \
' --threads ' + Etc.nprocessors.to_s
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/ ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand All @@ -121,16 +121,16 @@ def test_online_mode_different_project_list_and_config
def test_online_mode_project_list_and_config_with_apex
# This test depends on the file pmd_releases_6.40.0-baseline.zip being available at:
# https://pmd-code.org/pmd-regression-tester/pmd_releases_6.40.0-baseline.zip
argv = '--local-git-repo target/repositories/pmd '\
'--mode online '\
'--base-branch pmd_releases/6.40.0 '\
'--patch-branch pmd_releases/6.41.0 '\
'--patch-config test/resources/integration_test_runner/patch-config-with-apex.xml '\
'--list-of-project test/resources/integration_test_runner/project-list-with-apex.xml '\
argv = '--local-git-repo target/repositories/pmd ' \
'--mode online ' \
'--base-branch pmd_releases/6.40.0 ' \
'--patch-branch pmd_releases/6.41.0 ' \
'--patch-config test/resources/integration_test_runner/patch-config-with-apex.xml ' \
'--list-of-project test/resources/integration_test_runner/project-list-with-apex.xml ' \
'--auto-gen-config ' \
'--filter-with-patch-config ' \
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/' \
' --threads ' + Etc.nprocessors.to_s
'--baseline-download-url https://pmd-code.org/pmd-regression-tester/ ' \
'--threads ' + Etc.nprocessors.to_s

system("bundle exec bin/pmdtester #{argv}")

Expand Down
2 changes: 1 addition & 1 deletion test/manual_integration_tests.rb
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@ def create_summary_message
"introduces #{@summary[:violations][:new]} new violations, " \
"#{@summary[:errors][:new]} new errors and " \
"#{@summary[:configerrors][:new]} new configuration errors,\n" \
"removes #{@summary[:violations][:removed]} violations, "\
"removes #{@summary[:violations][:removed]} violations, " \
"#{@summary[:errors][:removed]} errors and " \
"#{@summary[:configerrors][:removed]} configuration errors."
end
Expand Down
2 changes: 1 addition & 1 deletion test/test_cmd.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class TestCmd < Test::Unit::TestCase

def setup
@tempdir = 'test-TestCmd-temp'
Dir.mkdir @tempdir unless Dir.exist?(@tempdir)
FileUtils.mkdir_p @tempdir
end

def teardown
Expand Down
6 changes: 3 additions & 3 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ def normalize_text(text)
end

def assert_file_equals(expected_path, actual_path)
expected_file = normalize_text(File.open(expected_path).read)
actual_file = normalize_text(File.open(actual_path).read)
expected_file = normalize_text(File.read(expected_path))
actual_file = normalize_text(File.read(actual_path))
assert_equal(expected_file, actual_file, actual_path)
end

def assert_file_content_equals(expected_content, actual_path)
actual_content = normalize_text(File.open(actual_path).read)
actual_content = normalize_text(File.read(actual_path))
assert_equal(expected_content, actual_content, actual_path)
end

Expand Down
4 changes: 2 additions & 2 deletions test/test_pmd_branch_detail.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# Unit test class for PmdTester::PmdBranchDetail
class TestPmdBranchDetail < Test::Unit::TestCase
def setup
@old_pr = ENV[PmdTester::PR_NUM_ENV_VAR]
@old_pr = ENV.fetch(PmdTester::PR_NUM_ENV_VAR, nil)
end

def cleanup
Expand All @@ -31,7 +31,7 @@ def test_save_and_load
assert_equal('test time', details.execution_time)
assert_equal(PmdTester::Cmd.stderr_of('java -version'), details.jdk_version)
assert_not_empty(details.jdk_version)
assert_equal(ENV['LANG'], details.language)
assert_equal(ENV.fetch('LANG'), details.language)
assert_not_empty(details.language)
assert_equal('1234', details.pull_request)
end
Expand Down
Loading