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

ruby-changes:68018

From: Nobuyoshi <ko1@a...>
Date: Fri, 17 Sep 2021 09:43:38 +0900 (JST)
Subject: [ruby-changes:68018] 34d6720fee (master): Prohibit test method redefinition

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

From 34d6720fee545c42a24f88044d0f78db0477452d Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Fri, 17 Sep 2021 08:54:18 +0900
Subject: Prohibit test method redefinition

---
 tool/lib/test/unit/testcase.rb          |  2 +-
 tool/test/testunit/test_redefinition.rb | 13 ++++---------
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/tool/lib/test/unit/testcase.rb b/tool/lib/test/unit/testcase.rb
index dab25de..241421d 100644
--- a/tool/lib/test/unit/testcase.rb
+++ b/tool/lib/test/unit/testcase.rb
@@ -337,7 +337,7 @@ module Test https://github.com/ruby/ruby/blob/trunk/tool/lib/test/unit/testcase.rb#L337
         return unless name.to_s.start_with?("test_")
         @test_methods ||= {}
         if @test_methods[name]
-          warn "test/unit warning: method #{ self }##{ name } is redefined"
+          raise AssertionFailedError, "test/unit: method #{ self }##{ name } is redefined"
         end
         @test_methods[name] = true
       end
diff --git a/tool/test/testunit/test_redefinition.rb b/tool/test/testunit/test_redefinition.rb
index 9129e55..b4f5cab 100644
--- a/tool/test/testunit/test_redefinition.rb
+++ b/tool/test/testunit/test_redefinition.rb
@@ -3,14 +3,9 @@ require 'test/unit' https://github.com/ruby/ruby/blob/trunk/tool/test/testunit/test_redefinition.rb#L3
 
 class TestRedefinition < Test::Unit::TestCase
   def test_redefinition
-    assert_match(/^test\/unit warning: method TestForTestRedefinition#test_redefinition is redefined$/,
-                 redefinition)
-  end
-
-  def redefinition(*args)
-    IO.popen([*@options[:ruby], "#{File.dirname(__FILE__)}/test4test_redefinition.rb", *args],
-                      err: [:child, :out]) {|f|
-      f.read
-    }
+    message = %r[test/unit: method TestForTestRedefinition#test_redefinition is redefined$]
+    assert_raise_with_message(Test::Unit::AssertionFailedError, message) do
+      require_relative("test4test_redefinition.rb")
+    end
   end
 end
-- 
cgit v1.1


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

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