ruby-changes:59095
From: Kazuhiro <ko1@a...>
Date: Fri, 6 Dec 2019 00:13:22 +0900 (JST)
Subject: [ruby-changes:59095] 693cba1a13 (master): Detect started threads when require only
https://git.ruby-lang.org/ruby.git/commit/?id=693cba1a13 From 693cba1a136aafb0faa25f93434a2e8dbad320de Mon Sep 17 00:00:00 2001 From: Kazuhiro NISHIYAMA <zn@m...> Date: Fri, 6 Dec 2019 00:11:11 +0900 Subject: Detect started threads when require only diff --git a/test/ruby/test_require_lib.rb b/test/ruby/test_require_lib.rb new file mode 100644 index 0000000..4af5717 --- /dev/null +++ b/test/ruby/test_require_lib.rb @@ -0,0 +1,28 @@ https://github.com/ruby/ruby/blob/trunk/test/ruby/test_require_lib.rb#L1 +# frozen_string_literal: false +require 'test/unit' + +class TestRequireLib < Test::Unit::TestCase + TEST_RATIO = ENV["TEST_REQUIRE_THREAD_RATIO"]&.tap {|s|break s.to_f} || 0.05 # testing all files needs too long time... + + Dir.glob(File.expand_path('../../lib/**/*.rb', __dir__)).each do |lib| + # skip some problems + next if %r!/lib/(?:bundler|rubygems)\b! =~ lib + next if %r!/lib/(?:debug|mkmf)\.rb\z! =~ lib + # skip because "in `<module:Maker>': undefined method `add_maker' for RSS::Maker:Module (NoMethodError)" + next if %r!/lib/rss\b! =~ lib + # skip many files that almost use no threads + next if TEST_RATIO < rand(0.0..1.0) + define_method "test_thread_size:#{lib}" do + assert_separately(['--disable-gems', '-W0'], "#{<<~"begin;"}\n#{<<~"end;"}") + begin; + n = Thread.list.size + begin + require #{lib.dump} + rescue Exception + skip $! + end + assert_equal n, Thread.list.size + end; + end + end +end -- cgit v0.10.2 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/