Skip to content
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
42 changes: 42 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ Rake::TestTask.new do |t|
t.ruby_opts = %w[-w]
t.ruby_opts << "-rdevkit" if RbConfig::CONFIG["host_os"].include?("mingw")

unless ENV["GEM_COMMAND"]
coverage_setup = File.expand_path("test/rubygems/coverage_setup.rb", __dir__)
t.ruby_opts.unshift("--disable-gems", "-r#{coverage_setup}")
end

t.libs << "test"
t.test_files = FileList["test/**/test_*.rb"]
end
Expand All @@ -83,6 +88,36 @@ end

task default: [:test, :spec]

desc "Generate coverage report from collected results"
task "coverage:report" do
resultset = File.join(__dir__, "coverage", ".resultset.json")
next unless File.exist?(resultset)

begin
require "simplecov"
rescue LoadError
next
end

SimpleCov.collate Dir[resultset] do
coverage_dir "coverage"
add_filter "/test/"
add_filter "/spec/"
add_filter "/tool/"
add_filter "/lib/rubygems/vendor/"
add_filter "/lib/bundler/vendor/"
add_filter "/bundler/tmp/"
add_filter ".gemspec"

add_group "RubyGems" do |src|
src.filename.include?("/lib/rubygems/") || src.filename.end_with?("/lib/rubygems.rb")
end
add_group "Bundler" do |src|
src.filename.include?("/lib/bundler/") || src.filename.end_with?("/lib/bundler.rb")
end
end
end

spec = Gem::Specification.load(File.expand_path("rubygems-update.gemspec", __dir__))
v = spec.version

Expand Down Expand Up @@ -738,3 +773,10 @@ namespace :bundler do
end
end
end

Rake::Task[:test].enhance do
Rake::Task["coverage:report"].reenable
Rake::Task["coverage:report"].invoke end
Rake::Task["spec:regular"].enhance do
Rake::Task["coverage:report"].reenable
Rake::Task["coverage:report"].invoke end
Comment on lines +777 to +782
23 changes: 23 additions & 0 deletions bundler/spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,29 @@
require_relative "support/platforms"
require_relative "support/windows_tag_group"

begin
raise LoadError if File.exist?(File.expand_path("../../lib/bundler/bundler.gemspec", __dir__))

gem "simplecov_json_formatter"
require "simplecov"

SimpleCov.start do
command_name "bundler:#{Process.pid}"
root File.expand_path("../..", __dir__)
coverage_dir File.expand_path("../../coverage", __dir__)
Comment on lines +43 to +52

add_filter "/spec/"
add_filter "/test/"
add_filter "/lib/rubygems/"
add_filter "/lib/bundler/vendor/"
add_filter "/tool/"
add_filter "/bundler/tmp/"
add_filter ".gemspec"
end
rescue LoadError
# SimpleCov is not installed
end

$debug = false

module Gem
Expand Down
9 changes: 9 additions & 0 deletions test/rubygems/coverage_setup.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# frozen_string_literal: true

# This file is loaded via -r flag BEFORE rubygems to enable coverage tracking
# of rubygems boot files. It must be used with --disable-gems and -Ilib
# so that Coverage.start runs before rubygems is loaded.

require "coverage"
Coverage.start(lines: true)
require "rubygems"
26 changes: 26 additions & 0 deletions test/rubygems/helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,32 @@

require "test/unit"

begin
raise LoadError if ENV["GEM_COMMAND"]

gem "simplecov_json_formatter"
require "simplecov"

unless ENV["SIMPLECOV_SUBPROCESS"]
SimpleCov.start do
command_name "rubygems"
root File.expand_path("../..", __dir__)
coverage_dir File.expand_path("../../coverage", __dir__)

add_filter "/test/"
add_filter "/bundler/"
add_filter "/tool/"
add_filter "/lib/rubygems/vendor/"
add_filter ".gemspec"
end

# Prevent SimpleCov from running in subprocesses spawned by assert_separately
ENV["SIMPLECOV_SUBPROCESS"] = "1"
end
rescue LoadError
# SimpleCov is not installed
end

require "fileutils"
require "pathname"
require "pp"
Expand Down
1 change: 1 addition & 0 deletions tool/bundler/dev_gems.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
gem "rspec-expectations", "~> 3.12"
gem "rspec-mocks", "~> 3.12"
gem "rubygems-generate_index", "~> 1.1"
gem "simplecov", "~> 0.22"

group :doc do
gem "ronn-ng", "~> 0.10.1", platform: :ruby
Expand Down
72 changes: 42 additions & 30 deletions tool/bundler/dev_gems.rb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,29 @@ GEM
specs:
compact_index (0.15.0)
diff-lcs (1.6.2)
kramdown (2.5.1)
rexml (>= 3.3.9)
docile (1.4.1)
kramdown (2.5.2)
rexml (>= 3.4.4)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
mini_portile2 (2.8.9)
mustache (1.1.1)
nokogiri (1.19.0)
mustache (1.1.2)
nokogiri (1.19.1)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
nokogiri (1.19.0-aarch64-linux-gnu)
nokogiri (1.19.1-aarch64-linux-gnu)
racc (~> 1.4)
nokogiri (1.19.0-arm-linux-gnu)
nokogiri (1.19.1-arm-linux-gnu)
racc (~> 1.4)
nokogiri (1.19.0-arm64-darwin)
nokogiri (1.19.1-arm64-darwin)
racc (~> 1.4)
nokogiri (1.19.0-java)
nokogiri (1.19.1-java)
racc (~> 1.4)
nokogiri (1.19.0-x64-mingw-ucrt)
nokogiri (1.19.1-x64-mingw-ucrt)
racc (~> 1.4)
nokogiri (1.19.0-x86_64-darwin)
nokogiri (1.19.1-x86_64-darwin)
racc (~> 1.4)
nokogiri (1.19.0-x86_64-linux-gnu)
nokogiri (1.19.1-x86_64-linux-gnu)
racc (~> 1.4)
parallel (1.27.0)
parallel_tests (4.10.1)
Expand All @@ -33,9 +34,9 @@ GEM
racc (1.8.1)
racc (1.8.1-java)
rake (13.3.1)
rake-compiler-dock (1.10.0)
rb_sys (0.9.123)
rake-compiler-dock (= 1.10.0)
rake-compiler-dock (1.11.0)
rb_sys (0.9.124)
rake-compiler-dock (= 1.11.0)
rexml (3.4.4)
ronn-ng (0.10.1)
kramdown (~> 2, >= 2.1)
Expand All @@ -51,12 +52,18 @@ GEM
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-mocks (3.13.7)
rspec-mocks (3.13.8)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.6)
rspec-support (3.13.7)
rubygems-generate_index (1.1.3)
compact_index (~> 0.15.0)
simplecov (0.22.0)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-html (0.13.2)
simplecov_json_formatter (0.1.4)
test-unit (3.7.7)
power_assert
test-unit-ruby-core (1.0.14)
Expand Down Expand Up @@ -89,41 +96,46 @@ DEPENDENCIES
rspec-expectations (~> 3.12)
rspec-mocks (~> 3.12)
rubygems-generate_index (~> 1.1)
simplecov (~> 0.22)
test-unit (~> 3.0)
test-unit-ruby-core
turbo_tests (~> 2.2.3)

CHECKSUMS
compact_index (0.15.0) sha256=5c6c404afca8928a7d9f4dde9524f6e1610db17e675330803055db282da84a8b
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
kramdown (2.5.1) sha256=87bbb6abd9d3cebe4fc1f33e367c392b4500e6f8fa19dd61c0972cf4afe7368c
docile (1.4.1) sha256=96159be799bfa73cdb721b840e9802126e4e03dfc26863db73647204c727f21e
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
mini_portile2 (2.8.9) sha256=0cd7c7f824e010c072e33f68bc02d85a00aeb6fce05bb4819c03dfd3c140c289
mustache (1.1.1) sha256=90891fdd50b53919ca334c8c1031eada1215e78d226d5795e523d6123a2717d0
nokogiri (1.19.0) sha256=e304d21865f62518e04f2bf59f93bd3a97ca7b07e7f03952946d8e1c05f45695
nokogiri (1.19.0-aarch64-linux-gnu) sha256=11a97ecc3c0e7e5edcf395720b10860ef493b768f6aa80c539573530bc933767
nokogiri (1.19.0-arm-linux-gnu) sha256=572a259026b2c8b7c161fdb6469fa2d0edd2b61cd599db4bbda93289abefbfe5
nokogiri (1.19.0-arm64-darwin) sha256=0811dfd936d5f6dd3f6d32ef790568bf29b2b7bead9ba68866847b33c9cf5810
nokogiri (1.19.0-java) sha256=5f3a70e252be641d8a4099f7fb4cc25c81c632cb594eec9b4b8f2ca8be4374f3
nokogiri (1.19.0-x64-mingw-ucrt) sha256=05d7ed2d95731edc9bef2811522dc396df3e476ef0d9c76793a9fca81cab056b
nokogiri (1.19.0-x86_64-darwin) sha256=1dad56220b603a8edb9750cd95798bffa2b8dd9dd9aa47f664009ee5b43e3067
nokogiri (1.19.0-x86_64-linux-gnu) sha256=f482b95c713d60031d48c44ce14562f8d2ce31e3a9e8dd0ccb131e9e5a68b58c
mustache (1.1.2) sha256=d420243400354da78ded2d81541b381ad8d94e8e9b95022d0d71d66f8ef36c00
nokogiri (1.19.1) sha256=598b327f36df0b172abd57b68b18979a6e14219353bca87180c31a51a00d5ad3
nokogiri (1.19.1-aarch64-linux-gnu) sha256=cfdb0eafd9a554a88f12ebcc688d2b9005f9fce42b00b970e3dc199587b27f32
nokogiri (1.19.1-arm-linux-gnu) sha256=0a39ed59abe3bf279fab9dd4c6db6fe8af01af0608f6e1f08b8ffa4e5d407fa3
nokogiri (1.19.1-arm64-darwin) sha256=dfe2d337e6700eac47290407c289d56bcf85805d128c1b5a6434ddb79731cb9e
nokogiri (1.19.1-java) sha256=1e0bda88b1c6409f0edb9e0c25f1bf9ff4fa94c3958f492a10fcf50dda594365
nokogiri (1.19.1-x64-mingw-ucrt) sha256=110d92ae57694ae7866670d298a5d04cd150fae5a6a7849957d66f171e6aec9b
nokogiri (1.19.1-x86_64-darwin) sha256=7093896778cc03efb74b85f915a775862730e887f2e58d6921e3fa3d981e68bf
nokogiri (1.19.1-x86_64-linux-gnu) sha256=1a4902842a186b4f901078e692d12257678e6133858d0566152fe29cdb98456a
parallel (1.27.0) sha256=4ac151e1806b755fb4e2dc2332cbf0e54f2e24ba821ff2d3dcf86bf6dc4ae130
parallel_tests (4.10.1) sha256=df05458c691462b210f7a41fc2651d4e4e8a881e8190e6d1e122c92c07735d70
power_assert (3.0.1) sha256=8ce9876716cc74e863fcd4cdcdc52d792bd983598d1af3447083a3a9a4d34103
racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
racc (1.8.1-java) sha256=54f2e6d1e1b91c154013277d986f52a90e5ececbe91465d29172e49342732b98
rake (13.3.1) sha256=8c9e89d09f66a26a01264e7e3480ec0607f0c497a861ef16063604b1b08eb19c
rake-compiler-dock (1.10.0) sha256=dd62ee19df2a185a3315697e560cfa8cc9129901332152851e023fab0e94bf11
rb_sys (0.9.123) sha256=c22ae84d1bca3eec0f13a45ae4ca9ba6eace93d5be270a40a9c0a9a5b92a34e5
rake-compiler-dock (1.11.0) sha256=eab51f2cd533eb35cea6b624a75281f047123e70a64c58b607471bb49428f8c2
rb_sys (0.9.124) sha256=513476557b12eaf73764b3da9f8746024558fe8699bda785fb548c9aa3877ae7
rexml (3.4.4) sha256=19e0a2c3425dfbf2d4fc1189747bdb2f849b6c5e74180401b15734bc97b5d142
ronn-ng (0.10.1) sha256=4eeb0185c0fbfa889efed923b5b50e949cd869e7d82ac74138acd0c9c7165ec0
rspec (3.13.2) sha256=206284a08ad798e61f86d7ca3e376718d52c0bc944626b2349266f239f820587
rspec-core (3.13.6) sha256=a8823c6411667b60a8bca135364351dda34cd55e44ff94c4be4633b37d828b2d
rspec-expectations (3.13.5) sha256=33a4d3a1d95060aea4c94e9f237030a8f9eae5615e9bd85718fe3a09e4b58836
rspec-mocks (3.13.7) sha256=0979034e64b1d7a838aaaddf12bf065ea4dc40ef3d4c39f01f93ae2c66c62b1c
rspec-support (3.13.6) sha256=2e8de3702427eab064c9352fe74488cc12a1bfae887ad8b91cba480ec9f8afb2
rspec-mocks (3.13.8) sha256=086ad3d3d17533f4237643de0b5c42f04b66348c28bf6b9c2d3f4a3b01af1d47
rspec-support (3.13.7) sha256=0640e5570872aafefd79867901deeeeb40b0c9875a36b983d85f54fb7381c47c
rubygems-generate_index (1.1.3) sha256=3571424322666598e9586a906485e1543b617f87644913eaf137d986a3393f5c
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
test-unit (3.7.7) sha256=3c89d5ff0690a16bef9946156c4624390402b9d54dfcf4ce9cbd5b06bead1e45
test-unit-ruby-core (1.0.14) sha256=d2e997796c9c5c5e8e31ac014f83a473ff5c2523a67cfa491b08893e12d43d22
turbo_tests (2.2.5) sha256=3fa31497d12976d11ccc298add29107b92bda94a90d8a0a5783f06f05102509f
Expand Down
Loading