diff options
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_dir.rb | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/test/ruby/test_dir.rb b/test/ruby/test_dir.rb index b188f4da60..ed0d084528 100644 --- a/test/ruby/test_dir.rb +++ b/test/ruby/test_dir.rb @@ -354,4 +354,18 @@ class TestDir < Test::Unit::TestCase assert_raise(Errno::ENOENT) {Dir.empty?(@nodir)} assert_not_send([Dir, :empty?, File.join(@root, "b")]) end + + def test_glob_gc_for_fd + assert_separately(["-C", @root], "#{<<-"begin;"}\n#{<<-"end;"}", timeout: 3) + begin; + Process.setrlimit(Process::RLIMIT_NOFILE, 50) + begin + tap {tap {tap {(0..100).map {open(IO::NULL)}}}} + rescue Errno::EMFILE + end + list = Dir.glob("*").sort + assert_not_empty(list) + assert_equal([*"a".."z"], list) + end; + end end |