diff options
author | Jeremy Evans <code@jeremyevans.net> | 2023-02-09 13:34:37 -0800 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2023-03-24 11:18:57 -0700 |
commit | 836e9a192ba4fdc56a2d3d94f5840869f77fd3bf (patch) | |
tree | fe69ae558f9f382ca7f8826f8349405eed9055d1 /test/ruby | |
parent | 3be65f63c79492908e898d8d7281035445a2b9a1 (diff) | |
download | ruby-836e9a192ba4fdc56a2d3d94f5840869f77fd3bf.tar.gz |
Add Dir.for_fd
This returns a Dir instance for the given directory file descriptor.
If fdopendir is not supported, this raises NotImplementedError.
Implements [Feature #19347]
Diffstat (limited to 'test/ruby')
-rw-r--r-- | test/ruby/test_dir.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/ruby/test_dir.rb b/test/ruby/test_dir.rb index 36480023fb..65803d0bc5 100644 --- a/test/ruby/test_dir.rb +++ b/test/ruby/test_dir.rb @@ -639,6 +639,21 @@ class TestDir < Test::Unit::TestCase } end + def test_for_fd + if Dir.respond_to? :for_fd + begin + new_dir = Dir.new('..') + for_fd_dir = Dir.for_fd(new_dir.fileno) + assert_equal(new_dir.chdir{Dir.pwd}, for_fd_dir.chdir{Dir.pwd}) + ensure + new_dir&.close + for_fd_dir&.close + end + else + assert_raise(NotImplementedError) { Dir.for_fd(0) } + end + end + def test_empty? assert_not_send([Dir, :empty?, @root]) a = File.join(@root, "a") |