ruby-changes:61042
From: Kazuhiro <ko1@a...>
Date: Fri, 8 May 2020 00:13:52 +0900 (JST)
Subject: [ruby-changes:61042] 22b1e824d7 (master): Check encodings of STDIN, STDOUT, STDERR too
https://git.ruby-lang.org/ruby.git/commit/?id=22b1e824d7 From 22b1e824d736d394c9efaabf882e9a6110135a57 Mon Sep 17 00:00:00 2001 From: Kazuhiro NISHIYAMA <zn@m...> Date: Fri, 8 May 2020 00:12:48 +0900 Subject: Check encodings of STDIN,STDOUT,STDERR too diff --git a/tool/lib/leakchecker.rb b/tool/lib/leakchecker.rb index 222b9ec..7ed48ec 100644 --- a/tool/lib/leakchecker.rb +++ b/tool/lib/leakchecker.rb @@ -237,23 +237,30 @@ class LeakChecker https://github.com/ruby/ruby/blob/trunk/tool/lib/leakchecker.rb#L237 end def find_encodings - [Encoding.default_internal, Encoding.default_external] + { + 'Encoding.default_internal' => Encoding.default_internal, + 'Encoding.default_external' => Encoding.default_external, + 'STDIN.internal_encoding' => STDIN.internal_encoding, + 'STDIN.external_encoding' => STDIN.external_encoding, + 'STDOUT.internal_encoding' => STDOUT.internal_encoding, + 'STDOUT.external_encoding' => STDOUT.external_encoding, + 'STDERR.internal_encoding' => STDERR.internal_encoding, + 'STDERR.external_encoding' => STDERR.external_encoding, + } end def check_encodings(test_name) - old_internal, old_external = @encoding_info - new_internal, new_external = find_encodings + old_encoding_info = @encoding_info + @encoding_info = find_encodings leaked = false - if new_internal != old_internal - leaked = true - puts "Encoding.default_internal changed: #{test_name} : #{old_internal.inspect} to #{new_internal.inspect}" - end - if new_external != old_external - leaked = true - puts "Encoding.default_external changed: #{test_name} : #{old_external.inspect} to #{new_external.inspect}" + @encoding_info.each do |key, new_encoding| + old_encoding = old_encoding_info[key] + if new_encoding != old_encoding + leaked = true + puts "#{key} changed: #{test_name} : #{old_encoding.inspect} to #{new_encoding.inspect}" + end end - @encoding_info = [new_internal, new_external] - return leaked + leaked end WARNING_CATEGORIES = %i[deprecated experimental].freeze -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/