summaryrefslogtreecommitdiff
path: root/test/test_tmpdir.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_tmpdir.rb')
-rw-r--r--test/test_tmpdir.rb47
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