diff options
author | Kazuhiro NISHIYAMA <zn@mbf.nifty.com> | 2019-11-19 17:34:43 +0900 |
---|---|---|
committer | Kazuhiro NISHIYAMA <zn@mbf.nifty.com> | 2019-11-19 17:36:47 +0900 |
commit | 822d7ae31659e4ab60c4d1aa6d088577d6bc74b0 (patch) | |
tree | dae122971fa2013a26aabcb297032babaa6e2643 | |
parent | 0b8c73aa65add5c57b46b0cfdf4e661508802172 (diff) | |
download | bundler-822d7ae31659e4ab60c4d1aa6d088577d6bc74b0.tar.gz |
Add a test
and rename from b.rb
[ruby-core:95055] [Bug #16177]
-rw-r--r-- | test/ruby/test_autoload.rb | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/test/ruby/test_autoload.rb b/test/ruby/test_autoload.rb index 3b013c12ae..53510e8244 100644 --- a/test/ruby/test_autoload.rb +++ b/test/ruby/test_autoload.rb @@ -323,7 +323,7 @@ p Foo::Bar def test_autoload_same_file Dir.mktmpdir('autoload') do |tmpdir| - File.write("#{tmpdir}/b.rb", "#{<<~'begin;'}\n#{<<~'end;'}") + File.write("#{tmpdir}/bug14742.rb", "#{<<~'begin;'}\n#{<<~'end;'}") begin; module Foo; end module Bar; end @@ -331,8 +331,8 @@ p Foo::Bar 3.times do # timing-dependent, needs a few times to hit [Bug #14742] assert_separately(%W[-I #{tmpdir}], "#{<<-'begin;'}\n#{<<-'end;'}") begin; - autoload :Foo, 'b' - autoload :Bar, 'b' + autoload :Foo, 'bug14742' + autoload :Bar, 'bug14742' t1 = Thread.new do Foo end t2 = Thread.new do Bar end t1.join @@ -345,6 +345,26 @@ p Foo::Bar end end + def test_autoload_same_file_with_raise + Dir.mktmpdir('autoload') do |tmpdir| + File.write("#{tmpdir}/bug16177.rb", "#{<<~'begin;'}\n#{<<~'end;'}") + begin; + raise '[ruby-core:95055] [Bug #16177]' + end; + assert_raise(RuntimeError, '[ruby-core:95055] [Bug #16177]') do + assert_separately(%W[-I #{tmpdir}], "#{<<-'begin;'}\n#{<<-'end;'}") + begin; + autoload :Foo, 'bug16177' + autoload :Bar, 'bug16177' + t1 = Thread.new do Foo end + t2 = Thread.new do Bar end + t1.join + t2.join + end; + end + end + end + def test_no_leak assert_no_memory_leak([], '', <<~'end;', 'many autoloads', timeout: 60) 200000.times do |i| |