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.rb36
1 files changed, 32 insertions, 4 deletions
diff --git a/test/test_tmpdir.rb b/test/test_tmpdir.rb
index 7ef9f59b54..054ca15d7a 100644
--- a/test/test_tmpdir.rb
+++ b/test/test_tmpdir.rb
@@ -12,7 +12,7 @@ class TestTmpdir < Test::Unit::TestCase
end
def test_world_writable
- skip "no meaning on this platform" if /mswin|mingw/ =~ RUBY_PLATFORM
+ omit "no meaning on this platform" if /mswin|mingw/ =~ RUBY_PLATFORM
Dir.mktmpdir do |tmpdir|
# ToDo: fix for parallel test
envs = %w[TMPDIR TMP TEMP]
@@ -23,14 +23,14 @@ class TestTmpdir < Test::Unit::TestCase
ENV[e] = tmpdirx
assert_not_equal(tmpdirx, assert_warn('') {Dir.tmpdir})
File.write(tmpdirx, "")
- assert_not_equal(tmpdirx, assert_warn(/not a directory/) {Dir.tmpdir})
+ assert_not_equal(tmpdirx, assert_warn(/\A#{e} is not a directory/) {Dir.tmpdir})
File.unlink(tmpdirx)
ENV[e] = tmpdir
assert_equal(tmpdir, Dir.tmpdir)
File.chmod(0555, tmpdir)
- assert_not_equal(tmpdir, assert_warn(/not writable/) {Dir.tmpdir})
+ assert_not_equal(tmpdir, assert_warn(/\A#{e} is not writable/) {Dir.tmpdir})
File.chmod(0777, tmpdir)
- assert_not_equal(tmpdir, assert_warn(/world-writable/) {Dir.tmpdir})
+ assert_not_equal(tmpdir, assert_warn(/\A#{e} is world-writable/) {Dir.tmpdir})
newdir = Dir.mktmpdir("d", tmpdir) do |dir|
assert_file.directory? dir
assert_equal(tmpdir, File.dirname(dir))
@@ -47,6 +47,18 @@ class TestTmpdir < Test::Unit::TestCase
end
end
+ def test_tmpdir_not_empty_parent
+ Dir.mktmpdir do |tmpdir|
+ envs = %w[TMPDIR TMP TEMP]
+ oldenv = envs.each_with_object({}) {|v, h| h[v] = ENV.delete(v)}
+ ENV[envs[0]] = ""
+ ENV[envs[1]] = tmpdir
+ assert_equal(tmpdir, Dir.tmpdir)
+ ensure
+ ENV.update(oldenv)
+ end
+ end
+
def test_no_homedir
bug7547 = '[ruby-core:50793]'
home, ENV["HOME"] = ENV["HOME"], nil
@@ -103,4 +115,20 @@ class TestTmpdir < Test::Unit::TestCase
end
end
end
+
+ def test_ractor
+ assert_ractor(<<~'end;', require: "tmpdir")
+ 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