diff options
-rw-r--r-- | test/test_tmpdir.rb | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/test/test_tmpdir.rb b/test/test_tmpdir.rb index 5cd0b5ef92..039b5beb6f 100644 --- a/test/test_tmpdir.rb +++ b/test/test_tmpdir.rb @@ -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 |