summaryrefslogtreecommitdiff
path: root/test/rubygems
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-01 06:01:15 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-07-01 06:01:15 +0000
commitc274c6fabf8772d9fc94be8d1c1c4dc8dd98babd (patch)
treea2b9f341c34eb2c83a24c5cd8a38fe353c44f9c7 /test/rubygems
parentd3b61c079e5bc944d0ee2298dfb79936c467ce71 (diff)
* lib/rubygems/ext/builder.rb (Gem::Ext::Builder.make),
(Gem::Ext::Builder.run): EXIT_SUCCESS may be 0 or may not. * test/rubygems/test_gem_ext_rake_builder.rb (build_rake_in): override Gem.ruby and ENV["rake"]. * runruby.rb: bin/rake does not exist in archdir where architecture depend script (i.e. rbconfig.rb) exists. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/rubygems')
-rw-r--r--test/rubygems/test_gem_ext_rake_builder.rb32
1 files changed, 26 insertions, 6 deletions
diff --git a/test/rubygems/test_gem_ext_rake_builder.rb b/test/rubygems/test_gem_ext_rake_builder.rb
index cf8e2a6d6b..6bc3ea08eb 100644
--- a/test/rubygems/test_gem_ext_rake_builder.rb
+++ b/test/rubygems/test_gem_ext_rake_builder.rb
@@ -3,6 +3,8 @@ require File.join(File.expand_path(File.dirname(__FILE__)), 'gemutilities')
require 'rubygems/ext'
class TestGemExtRakeBuilder < RubyGemTestCase
+ @@ruby = ENV["RUBY"]
+ @@rake = ENV["rake"] || (@@ruby + " " + File.expand_path("../../../bin/rake", __FILE__))
def setup
super
@@ -14,6 +16,24 @@ class TestGemExtRakeBuilder < RubyGemTestCase
FileUtils.mkdir_p @dest_path
end
+ def build_rake_in dir
+ gem_ruby = Gem.ruby
+ ruby = @@ruby
+ Gem.module_eval {@ruby = ruby}
+ env_rake = ENV["rake"]
+ ENV["rake"] = @@rake
+ Dir.chdir dir do
+ yield @@rake
+ end
+ ensure
+ Gem.module_eval {@ruby = gem_ruby}
+ if env_rake
+ ENV["rake"] = env_rake
+ else
+ ENV.delete("rake")
+ end
+ end
+
def test_class_build
File.open File.join(@ext, 'mkrf_conf.rb'), 'w' do |mkrf_conf|
mkrf_conf.puts <<-EO_MKRF
@@ -26,15 +46,15 @@ class TestGemExtRakeBuilder < RubyGemTestCase
output = []
realdir = nil # HACK /tmp vs. /private/tmp
- Dir.chdir @ext do
+ build_rake_in @ext do
realdir = Dir.pwd
Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', nil, @dest_path, output
end
expected = [
- "#{Gem.ruby} mkrf_conf.rb",
+ "#{@@ruby} mkrf_conf.rb",
"",
- "#{ENV['rake'] || 'rake'} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}",
+ "#{@@rake} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}",
"(in #{realdir})\n"
]
@@ -53,7 +73,7 @@ class TestGemExtRakeBuilder < RubyGemTestCase
output = []
error = assert_raise Gem::InstallError do
- Dir.chdir @ext do
+ build_rake_in @ext do
Gem::Ext::RakeBuilder.build "mkrf_conf.rb", nil, @dest_path, output
end
end
@@ -61,9 +81,9 @@ class TestGemExtRakeBuilder < RubyGemTestCase
expected = <<-EOF.strip
rake failed:
-#{Gem.ruby} mkrf_conf.rb
+#{@@ruby} mkrf_conf.rb
-#{ENV['rake'] || 'rake'} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}
+#{@@rake} RUBYARCHDIR=#{@dest_path} RUBYLIBDIR=#{@dest_path}
EOF
assert_equal expected, error.message.split("\n")[0..4].join("\n")