globals/reassigned_standard_stream_parens.rb
tests/_examples/globals/reassigned_standard_stream_parens.rb in the metorex repository.
# A standard stream's constant may be pointed at another stream inside a
# block and pointed back afterwards, which leaves the original open.
original = STDERR
[1].each() do
$VERBOSE = nil
STDERR = File.open("/dev/null", "w")
STDERR.close()
begin
p(STDERR.closed?())
ensure
STDERR = original
end
end
p(STDERR.equal?(original))
p(STDERR.closed?())
p($stderr.closed?())
Output:
true
true
false
false