diff --git a/ChangeLog b/ChangeLog index eef613209d..89cdaf0e32 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Wed Jan 23 06:43:26 2013 Eric Hodel + + * lib/rubygems/test_case.rb: Use Dir.tmpdir for rubygems tests instead + of ./tmp/test. Fixes [ruby-trunk - Bug #7717] + Tue Jan 22 22:58:03 2013 Akinori MUSHA * misc/ruby-electric.el (ruby-electric-curlies): Fix the bug where 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'