summaryrefslogtreecommitdiff
path: root/test/ruby/test_require_lib.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/ruby/test_require_lib.rb')
-rw-r--r--test/ruby/test_require_lib.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/ruby/test_require_lib.rb b/test/ruby/test_require_lib.rb
new file mode 100644
index 0000000000..44dfbcf9ec
--- /dev/null
+++ b/test/ruby/test_require_lib.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+require 'test/unit'
+
+class TestRequireLib < Test::Unit::TestCase
+ libdir = __dir__ + '/../../lib'
+
+ # .rb files at lib
+ scripts = Dir.glob('*.rb', base: libdir).map {|f| f.chomp('.rb')}
+
+ # .rb files in subdirectories of lib without same name script
+ dirs = Dir.glob('*/', base: libdir).map {|d| d.chomp('/')}
+ dirs -= scripts
+ scripts.concat(Dir.glob(dirs.map {|d| d + '/*.rb'}, base: libdir).map {|f| f.chomp('.rb')})
+
+ # skip some problems
+ scripts -= %w[bundler bundled_gems rubygems mkmf set/sorted_set]
+
+ scripts.each do |lib|
+ define_method "test_thread_size:#{lib}" do
+ assert_separately(['-W0'], "#{<<~"begin;"}\n#{<<~"end;"}", timeout: 60)
+ begin;
+ n = Thread.list.size
+ require #{lib.dump}
+ assert_equal n, Thread.list.size
+ end;
+ end
+ end
+end