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

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/

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