diff options
Diffstat (limited to 'test/rubygems/test_gem_installer.rb')
-rw-r--r-- | test/rubygems/test_gem_installer.rb | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/test/rubygems/test_gem_installer.rb b/test/rubygems/test_gem_installer.rb index 2d747bed72..9083cbe661 100644 --- a/test/rubygems/test_gem_installer.rb +++ b/test/rubygems/test_gem_installer.rb @@ -1141,6 +1141,35 @@ gem 'other', version refute_path_exists should_be_removed end + def test_install_user_extension_dir + @spec.extensions << "extconf.rb" + write_file File.join(@tempdir, "extconf.rb") do |io| + io.write <<-RUBY + require "mkmf" + create_makefile("#{@spec.name}") + RUBY + end + + @spec.files += %w[extconf.rb] + + # Create the non-user ext dir + expected_extension_dir = @spec.extension_dir.dup + FileUtils.mkdir_p expected_extension_dir + + use_ui @ui do + path = Gem::Package.build @spec + + installer = Gem::Installer.at path, :user_install => true + installer.install + end + + expected_makefile = File.join Gem.user_dir, 'gems', @spec.full_name, 'Makefile' + + assert_path_exists expected_makefile + assert_path_exists expected_extension_dir + refute_path_exists File.join expected_extension_dir, 'gem_make.out' + end + # ruby core repository needs to `depend` file for extension build. # but 1.9.2 and earlier mkmf.rb does not create TOUCH file like depend. if RUBY_VERSION < '1.9.3' @@ -1387,7 +1416,7 @@ gem 'other', version def test_pre_install_checks_ruby_version use_ui @ui do installer = Gem::Installer.at old_ruby_required - e = assert_raises Gem::InstallError do + e = assert_raises Gem::RuntimeRequirementNotMetError do installer.pre_install_checks end assert_equal 'old_ruby_required requires Ruby version = 1.4.6.', @@ -1406,7 +1435,7 @@ gem 'other', version use_ui @ui do @installer = Gem::Installer.at gem - e = assert_raises Gem::InstallError do + e = assert_raises Gem::RuntimeRequirementNotMetError do @installer.pre_install_checks end assert_equal 'old_rubygems_required requires RubyGems version < 0. ' + |