summaryrefslogtreecommitdiff
path: root/lib/rubygems/test_case.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/test_case.rb')
-rw-r--r--lib/rubygems/test_case.rb15
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/rubygems/test_case.rb b/lib/rubygems/test_case.rb
index a04c733ccf..9776fb55b9 100644
--- a/lib/rubygems/test_case.rb
+++ b/lib/rubygems/test_case.rb
@@ -118,8 +118,8 @@ class Gem::TestCase < MiniTest::Unit::TestCase
@current_dir = Dir.pwd
@ui = Gem::MockGemUi.new
- # Need to do this in the project because $SAFE fucks up _everything_
- tmpdir = File.expand_path("tmp/test")
+ tmpdir = File.expand_path Dir.tmpdir
+ tmpdir.untaint
if ENV['KEEP_FILES'] then
@tempdir = File.join(tmpdir, "test_rubygems_#{$$}.#{Time.now.to_i}")
@@ -127,6 +127,17 @@ class Gem::TestCase < MiniTest::Unit::TestCase
@tempdir = File.join(tmpdir, "test_rubygems_#{$$}")
end
@tempdir.untaint
+
+ FileUtils.mkdir_p @tempdir
+
+ # This makes the tempdir consistent on OS X.
+ # File.expand_path Dir.tmpdir #=> "/var/..."
+ # Dir.chdir Dir.tmpdir do File.expand_path '.' end #=> "/private/var/..."
+ Dir.chdir @tempdir do
+ @tempdir = File.expand_path '.'
+ @tempdir.untaint
+ end
+
@gemhome = File.join @tempdir, 'gemhome'
@userhome = File.join @tempdir, 'userhome'