[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]