From 76bd0714cf1140ffd64bf564446c76c54f2c4870 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Thu, 8 Aug 2019 21:26:31 +0900 Subject: solve "duplicate :raise event" in require too [Bug #15877] --- load.c | 1 - test/ruby/test_settracefunc.rb | 8 +++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/load.c b/load.c index cc5533e8b2..ba84ec0d7b 100644 --- a/load.c +++ b/load.c @@ -1053,7 +1053,6 @@ rb_require_safe(VALUE fname, int safe) int result = rb_require_internal(fname, safe); if (result > TAG_RETURN) { - if (result == TAG_RAISE) rb_exc_raise(rb_errinfo()); EC_JUMP_TAG(GET_EC(), result); } if (result < 0) { diff --git a/test/ruby/test_settracefunc.rb b/test/ruby/test_settracefunc.rb index 7d7b672fd8..11384273df 100644 --- a/test/ruby/test_settracefunc.rb +++ b/test/ruby/test_settracefunc.rb @@ -1676,10 +1676,16 @@ class TestSetTraceFunc < Test::Unit::TestCase tmpdir = Dir.mktmpdir path = "#{tmpdir}/hola.rb" File.open(path, "w") { |f| f.write("raise") } - TracePoint.new(:raise){|tp| next if !target_thread?; events << [tp.event]}.enable{ + tp = TracePoint.new(:raise) {|tp| events << [tp.event] if target_thread?} + tp.enable{ load path rescue nil } assert_equal [[:raise]], events + events.clear + tp.enable{ + require path rescue nil + } + assert_equal [[:raise]], events ensure FileUtils.rmtree(tmpdir) end -- cgit v1.2.3