diff options
Diffstat (limited to 'test/test_tmpdir.rb')
| -rw-r--r-- | test/test_tmpdir.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/test_tmpdir.rb b/test/test_tmpdir.rb index eada416f6f..c91fc334ed 100644 --- a/test/test_tmpdir.rb +++ b/test/test_tmpdir.rb @@ -104,6 +104,22 @@ class TestTmpdir < Test::Unit::TestCase end end + def test_mktmpdir_not_empty_parent + assert_raise(ArgumentError) do + Dir.mktmpdir("foo", "") + end + + path = Struct.new(:to_path).new("") + assert_raise(ArgumentError) do + Dir.mktmpdir("foo", path) + end + + Dir.mktmpdir do |d| + path = Struct.new(:to_path).new(d) + assert_operator(Dir.mktmpdir("prefix-", path), :start_with?, d + "/prefix-") + end + end + def assert_mktmpdir_traversal Dir.mktmpdir do |target| target = target.chomp('/') + '/' @@ -115,4 +131,35 @@ class TestTmpdir < Test::Unit::TestCase end end end + + def test_ractor + assert_ractor(<<~'end;', require: "tmpdir") + if defined?(Ractor::Port) + port = Ractor::Port.new + r = Ractor.new port do |port| + Dir.mktmpdir() do |d| + port << d + Ractor.receive + end + end + dir = port.receive + assert_file.directory? dir + r.send true + r.join + assert_file.not_exist? dir + else + r = Ractor.new do + Dir.mktmpdir() do |d| + Ractor.yield d + Ractor.receive + end + end + dir = r.take + assert_file.directory? dir + r.send true + r.take + assert_file.not_exist? dir + end + end; + end end |
