[rubygems/rubygems] Fix test warnings
Since `rake package` started printing to stdout by default, we get these warnings printed when running rubygems tests: ``` $ rake Run options: --seed 6097 # Running: ...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................mkdir -p pkg mkdir -p pkg/pkgr-1.2.3 rm -f pkg/pkgr-1.2.3/x ln x pkg/pkgr-1.2.3/x rm -f pkg/pkgr-1.2.3/y ln y pkg/pkgr-1.2.3/y cd pkg/pkgr-1.2.3 cd - .... Finished in 50.578889s, 43.0812 runs/s, 134.8191 assertions/s. 2179 runs, 6819 assertions, 0 failures, 0 errors, 0 skips Coverage report generated for Unit Tests to /home/deivid/Code/rubygems/coverage. 8080 / 8978 LOC (90.0%) covered. ``` The reason is that, although these tests wrap the `Rake.application["package"].invoke` with a `capture_io` block, the rake application initialization happens outside of this block, and a copy of `$stdout` is saved in there, and that's where the task prints. So the `capture_io` `$stdout` and `$stderr` dance is not effective. To fix, we move the `Rake` application initialization inside the `capture_io` block. https://github.com/rubygems/rubygems/commit/7f6e2398a5
This commit is contained in:
parent
8739bc449f
commit
b35793e0e7
Notes:
git
2020-06-05 07:33:34 +09:00
@ -8,8 +8,6 @@ class TestGemPackageTask < Gem::TestCase
|
|||||||
def setup
|
def setup
|
||||||
super
|
super
|
||||||
|
|
||||||
Rake.application = Rake::Application.new
|
|
||||||
|
|
||||||
@original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
|
@original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -31,6 +29,8 @@ class TestGemPackageTask < Gem::TestCase
|
|||||||
g.summary = 'summary'
|
g.summary = 'summary'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Rake.application = Rake::Application.new
|
||||||
|
|
||||||
pkg = Gem::PackageTask.new(gem) do |p|
|
pkg = Gem::PackageTask.new(gem) do |p|
|
||||||
p.package_files << "y"
|
p.package_files << "y"
|
||||||
end
|
end
|
||||||
@ -57,22 +57,24 @@ class TestGemPackageTask < Gem::TestCase
|
|||||||
g.summary = 'summary'
|
g.summary = 'summary'
|
||||||
end
|
end
|
||||||
|
|
||||||
pkg = Gem::PackageTask.new(gem) do |p|
|
_, err = capture_io do
|
||||||
p.package_files << "y"
|
Rake.application = Rake::Application.new
|
||||||
end
|
|
||||||
|
|
||||||
assert_equal %w[x y], pkg.package_files
|
pkg = Gem::PackageTask.new(gem) do |p|
|
||||||
|
p.package_files << "y"
|
||||||
Dir.chdir @tempdir do
|
|
||||||
FileUtils.touch 'x'
|
|
||||||
FileUtils.touch 'y'
|
|
||||||
|
|
||||||
_, err = capture_io do
|
|
||||||
Rake.application['package'].invoke
|
|
||||||
end
|
end
|
||||||
|
|
||||||
assert_empty err
|
assert_equal %w[x y], pkg.package_files
|
||||||
|
|
||||||
|
Dir.chdir @tempdir do
|
||||||
|
FileUtils.touch 'x'
|
||||||
|
FileUtils.touch 'y'
|
||||||
|
|
||||||
|
Rake.application['package'].invoke
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
assert_empty err
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_gem_package_with_current_platform
|
def test_gem_package_with_current_platform
|
||||||
|
Loading…
x
Reference in New Issue
Block a user