mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
parent
50bce2065d
commit
f7f849e30c
1 changed files with 17 additions and 12 deletions
|
@ -15,21 +15,26 @@ class TestTmpdir < Test::Unit::TestCase
|
|||
skip "no meaning on this platform" if /mswin|mingw/ =~ RUBY_PLATFORM
|
||||
Dir.mktmpdir do |tmpdir|
|
||||
# ToDo: fix for parallel test
|
||||
olddir, ENV["TMPDIR"] = ENV["TMPDIR"], tmpdir
|
||||
envs = %w[TMPDIR TMP TEMP]
|
||||
oldenv = envs.each_with_object({}) {|v, h| h[v] = ENV.delete(v)}
|
||||
begin
|
||||
assert_equal(tmpdir, Dir.tmpdir)
|
||||
File.chmod(0777, tmpdir)
|
||||
assert_not_equal(tmpdir, Dir.tmpdir)
|
||||
newdir = Dir.mktmpdir("d", tmpdir) do |dir|
|
||||
assert_file.directory? dir
|
||||
assert_equal(tmpdir, File.dirname(dir))
|
||||
dir
|
||||
envs.each do |e|
|
||||
ENV[e] = tmpdir
|
||||
assert_equal(tmpdir, Dir.tmpdir)
|
||||
File.chmod(0777, tmpdir)
|
||||
assert_not_equal(tmpdir, Dir.tmpdir)
|
||||
newdir = Dir.mktmpdir("d", tmpdir) do |dir|
|
||||
assert_file.directory? dir
|
||||
assert_equal(tmpdir, File.dirname(dir))
|
||||
dir
|
||||
end
|
||||
assert_file.not_exist?(newdir)
|
||||
File.chmod(01777, tmpdir)
|
||||
assert_equal(tmpdir, Dir.tmpdir)
|
||||
ENV[e] = nil
|
||||
end
|
||||
assert_file.not_exist?(newdir)
|
||||
File.chmod(01777, tmpdir)
|
||||
assert_equal(tmpdir, Dir.tmpdir)
|
||||
ensure
|
||||
ENV["TMPDIR"] = olddir
|
||||
ENV.update(oldenv)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue