test_gem_silent_ui.rb: fix leaked FDs
* lib/rubygems/user_interaction.rb (Gem::StreamUI#close): clean up IOs. * test/rubygems/test_gem_silent_ui.rb (TestGemSilentUI#teardown): fix leaked FDs. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46942 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
3b26b3898e
commit
ebed2ef335
@ -378,9 +378,13 @@ class Gem::StreamUI
|
|||||||
# handlers that might have been defined.
|
# handlers that might have been defined.
|
||||||
|
|
||||||
def terminate_interaction(status = 0)
|
def terminate_interaction(status = 0)
|
||||||
|
close
|
||||||
raise Gem::SystemExitException, status
|
raise Gem::SystemExitException, status
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def close
|
||||||
|
end
|
||||||
|
|
||||||
##
|
##
|
||||||
# Return a progress reporter object chosen from the current verbosity.
|
# Return a progress reporter object chosen from the current verbosity.
|
||||||
|
|
||||||
@ -683,6 +687,12 @@ class Gem::SilentUI < Gem::StreamUI
|
|||||||
super reader, writer, writer, false
|
super reader, writer, writer, false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def close
|
||||||
|
super
|
||||||
|
@ins.close
|
||||||
|
@outs.close
|
||||||
|
end
|
||||||
|
|
||||||
def download_reporter(*args) # :nodoc:
|
def download_reporter(*args) # :nodoc:
|
||||||
SilentDownloadReporter.new(@outs, *args)
|
SilentDownloadReporter.new(@outs, *args)
|
||||||
end
|
end
|
||||||
|
@ -9,6 +9,11 @@ class TestGemSilentUI < Gem::TestCase
|
|||||||
@sui = Gem::SilentUI.new
|
@sui = Gem::SilentUI.new
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def teardown
|
||||||
|
@sui.close
|
||||||
|
super
|
||||||
|
end
|
||||||
|
|
||||||
def test_ask
|
def test_ask
|
||||||
value = nil
|
value = nil
|
||||||
out, err = capture_io do
|
out, err = capture_io do
|
||||||
|
Loading…
x
Reference in New Issue
Block a user