diff options
author | Stan Lo <stan.lo@shopify.com> | 2022-10-25 21:45:16 +0100 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-10-25 20:50:07 +0000 |
commit | 48339d5c5b6f8b34aad0fe2b44d0e2eb479b069f (patch) | |
tree | 213b5393a375cd0b49596a3865a5d70fa967d912 /test | |
parent | 217fdbf9aa6dd850eace9f10c9a74bcec8b510e2 (diff) |
[ruby/irb] Make sure Encoding's defaults are restored
Diffstat (limited to 'test')
-rw-r--r-- | test/irb/test_input_method.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/test/irb/test_input_method.rb b/test/irb/test_input_method.rb index b9832d39ed..05580256fa 100644 --- a/test/irb/test_input_method.rb +++ b/test/irb/test_input_method.rb @@ -11,19 +11,22 @@ module TestIRB # RelineInputMethod#initialize calls IRB.set_encoding, which mutates standard input/output's encoding # so we need to make sure we set them back - @original_encodings = { + @original_io_encodings = { STDIN => [STDIN.external_encoding, STDIN.internal_encoding], STDOUT => [STDOUT.external_encoding, STDOUT.internal_encoding], STDERR => [STDERR.external_encoding, STDERR.internal_encoding], } + @original_default_encodings = [Encoding.default_external, Encoding.default_internal] end def teardown IRB.conf.replace(@conf_backup) - @original_encodings.each do |io, (external_encoding, internal_encoding)| + @original_io_encodings.each do |io, (external_encoding, internal_encoding)| io.set_encoding(external_encoding, internal_encoding) end + + EnvUtil.suppress_warning { Encoding.default_external, Encoding.default_internal = @original_default_encodings } end def test_initialization |