[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
|
||||
super
|
||||
|
||||
Rake.application = Rake::Application.new
|
||||
|
||||
@original_rake_fileutils_verbosity = RakeFileUtils.verbose_flag
|
||||
end
|
||||
|
||||
@ -31,6 +29,8 @@ class TestGemPackageTask < Gem::TestCase
|
||||
g.summary = 'summary'
|
||||
end
|
||||
|
||||
Rake.application = Rake::Application.new
|
||||
|
||||
pkg = Gem::PackageTask.new(gem) do |p|
|
||||
p.package_files << "y"
|
||||
end
|
||||
@ -57,22 +57,24 @@ class TestGemPackageTask < Gem::TestCase
|
||||
g.summary = 'summary'
|
||||
end
|
||||
|
||||
pkg = Gem::PackageTask.new(gem) do |p|
|
||||
p.package_files << "y"
|
||||
end
|
||||
_, err = capture_io do
|
||||
Rake.application = Rake::Application.new
|
||||
|
||||
assert_equal %w[x y], pkg.package_files
|
||||
|
||||
Dir.chdir @tempdir do
|
||||
FileUtils.touch 'x'
|
||||
FileUtils.touch 'y'
|
||||
|
||||
_, err = capture_io do
|
||||
Rake.application['package'].invoke
|
||||
pkg = Gem::PackageTask.new(gem) do |p|
|
||||
p.package_files << "y"
|
||||
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
|
||||
|
||||
assert_empty err
|
||||
end
|
||||
|
||||
def test_gem_package_with_current_platform
|
||||
|
Loading…
x
Reference in New Issue
Block a user