summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/rubygems/test_case.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/rubygems/test_case.rb b/lib/rubygems/test_case.rb
index 2fbdd4fd88..83a3c446a7 100644
--- a/lib/rubygems/test_case.rb
+++ b/lib/rubygems/test_case.rb
@@ -301,6 +301,9 @@ class Gem::TestCase < Minitest::Test
def setup
@orig_env = ENV.to_hash
+ @tmp = File.expand_path("tmp")
+
+ FileUtils.mkdir_p @tmp
ENV['GEM_VENDOR'] = nil
ENV['GEMRC'] = nil
@@ -309,6 +312,7 @@ class Gem::TestCase < Minitest::Test
ENV['XDG_DATA_HOME'] = nil
ENV['SOURCE_DATE_EPOCH'] = nil
ENV['BUNDLER_VERSION'] = nil
+ ENV["TMPDIR"] = @tmp
@current_dir = Dir.pwd
@fetcher = nil
@@ -319,10 +323,13 @@ class Gem::TestCase < Minitest::Test
# capture output
Gem::DefaultUserInteraction.ui = Gem::MockGemUi.new
- tmpdir = File.realpath(Dir.mktmpdir("test_rubygems_"))
+ tmpdir = File.realpath Dir.tmpdir
tmpdir.tap(&Gem::UNTAINT)
- ENV["TMPDIR"] = @tmp = File.dirname(tmpdir)
- @tempdir = tmpdir
+
+ @tempdir = File.join(tmpdir, "test_rubygems_#{$$}")
+ @tempdir.tap(&Gem::UNTAINT)
+
+ FileUtils.mkdir_p @tempdir
@orig_SYSTEM_WIDE_CONFIG_FILE = Gem::ConfigFile::SYSTEM_WIDE_CONFIG_FILE
Gem::ConfigFile.send :remove_const, :SYSTEM_WIDE_CONFIG_FILE