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

ruby-changes:69725

From: Yusuke <ko1@a...>
Date: Mon, 15 Nov 2021 14:21:08 +0900 (JST)
Subject: [ruby-changes:69725] a698181021 (master): test/ruby/test_m17n.rb: Run a test under assert_separately

https://git.ruby-lang.org/ruby.git/commit/?id=a698181021

From a698181021c11711dc56b74dacbdebc2895b5384 Mon Sep 17 00:00:00 2001
From: Yusuke Endoh <mame@r...>
Date: Mon, 15 Nov 2021 14:13:20 +0900
Subject: test/ruby/test_m17n.rb: Run a test under assert_separately

The test uses `Encoding.default_external = Encoding::UTF_16BE`, which
may add a wrongly UTF_16BE-encoded path to $LOADED_FEATURES (depending
on the order of tests). Unfortunately this breaks another test:

http://ci.rvm.jp/results/trunk-test@ruby-sky1/3711615
```
/tmp/ruby/v3/src/trunk-test/test/io/console/test_io_console.rb:11:in `===': incompatible encoding regexp match (US-ASCII regexp with UTF-16BE string) (Encoding::CompatibilityError)
```

According to @naruse-san, we don't pay effort to such a case, so this
change just avoids the issue by running the test in question under
another process.

Co-Authored-By: Koichi Sasada <ko1@a...>
---
 test/ruby/test_m17n.rb | 52 ++++++++++++++++++++++++--------------------------
 1 file changed, 25 insertions(+), 27 deletions(-)

diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb
index 6b0bc4de5ee..9005c053814 100644
--- a/test/ruby/test_m17n.rb
+++ b/test/ruby/test_m17n.rb
@@ -296,37 +296,35 @@ class TestM17N < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_m17n.rb#L296
   end
 
   def test_object_inspect_external
-    orig_v, $VERBOSE = $VERBOSE, false
-    orig_int, Encoding.default_internal = Encoding.default_internal, nil
-    orig_ext = Encoding.default_external
-    o = Object.new
-
-    Encoding.default_external = Encoding::UTF_16BE
-    def o.inspect
-      "abc"
-    end
-    assert_nothing_raised(Encoding::CompatibilityError) { [o].inspect }
+    assert_separately([], "#{<<~"begin;"}\n#{<<~'end;'}")
+    begin;
+      $VERBOSE = false
+      Encoding.default_internal = nil
+      o = Object.new
+
+      Encoding.default_external = Encoding::UTF_16BE
+      def o.inspect
+        "abc"
+      end
+      assert_nothing_raised(Encoding::CompatibilityError) { [o].inspect }
 
-    def o.inspect
-      "abc".encode(Encoding.default_external)
-    end
+      def o.inspect
+        "abc".encode(Encoding.default_external)
+      end
 
-    assert_equal '[abc]', [o].inspect
+      assert_equal '[abc]', [o].inspect
 
-    Encoding.default_external = Encoding::US_ASCII
-    def o.inspect
-      "\u3042"
-    end
-    assert_equal '[\u3042]', [o].inspect
+      Encoding.default_external = Encoding::US_ASCII
+      def o.inspect
+        "\u3042"
+      end
+      assert_equal '[\u3042]', [o].inspect
 
-    def o.inspect
-      "\x82\xa0".force_encoding(Encoding::Windows_31J)
-    end
-    assert_equal '[\x{82A0}]', [o].inspect
-  ensure
-    Encoding.default_internal = orig_int
-    Encoding.default_external = orig_ext
-    $VERBOSE = orig_v
+      def o.inspect
+        "\x82\xa0".force_encoding(Encoding::Windows_31J)
+      end
+      assert_equal '[\x{82A0}]', [o].inspect
+    end;
   end
 
   def test_str_dump
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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