ruby-changes:6266
From: mame <ko1@a...>
Date: Tue, 1 Jul 2008 21:33:28 +0900 (JST)
Subject: [ruby-changes:6266] Ruby:r17780 (trunk): * lib/test/unit/ui/console/testrunner.rb: prevent destructive modification to $0.
mame 2008-07-01 21:33:11 +0900 (Tue, 01 Jul 2008)
New Revision: 17780
Modified files:
trunk/ChangeLog
trunk/lib/test/unit/ui/console/testrunner.rb
trunk/test/rubygems/gemutilities.rb
trunk/test/rubygems/test_gem_ext_rake_builder.rb
trunk/test/rubygems/test_gem_installer.rb
trunk/test/rubygems/test_gem_uninstaller.rb
Log:
* lib/test/unit/ui/console/testrunner.rb: prevent destructive modification to $0.
* test/rubygems/gemutilities.rb (build_rake_in): move from test_gem_ext_rake_builder.rb.
* test/rubygems/test_gem_ext_rake_builder.rb: ditto.
* test/rubygems/test_gem_installer.rb: override Gem.ruby and ENV["rake"].
* test/rubygems/test_gem_uninstaller.rb: ditto.
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=17780
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rubygems/test_gem_uninstaller.rb?r1=17780&r2=17779&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rubygems/test_gem_ext_rake_builder.rb?r1=17780&r2=17779&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=17780&r2=17779&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lib/test/unit/ui/console/testrunner.rb?r1=17780&r2=17779&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rubygems/test_gem_installer.rb?r1=17780&r2=17779&diff_format=u
http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/rubygems/gemutilities.rb?r1=17780&r2=17779&diff_format=u
Index: ChangeLog
===================================================================
--- ChangeLog (revision 17779)
+++ ChangeLog (revision 17780)
@@ -1,3 +1,19 @@
+Tue Jul 1 21:32:43 2008 Yusuke Endoh <mame@t...>
+
+ * lib/test/unit/ui/console/testrunner.rb: prevent destructive
+ modification to $0.
+
+ * test/rubygems/gemutilities.rb (build_rake_in): move from
+ test_gem_ext_rake_builder.rb.
+
+ * test/rubygems/test_gem_ext_rake_builder.rb: ditto.
+
+ * test/rubygems/test_gem_installer.rb: override Gem.ruby and
+ ENV["rake"].
+
+ * test/rubygems/test_gem_uninstaller.rb: ditto.
+
+
Tue Jul 1 21:13:17 2008 Koichi Sasada <ko1@a...>
* compile.c, vm.c, insns.def: call FrozenCore.set_postexe method
Index: lib/test/unit/ui/console/testrunner.rb
===================================================================
--- lib/test/unit/ui/console/testrunner.rb (revision 17779)
+++ lib/test/unit/ui/console/testrunner.rb (revision 17780)
@@ -90,10 +90,8 @@
end
def test_started(name)
- unless defined? $program_name
- $program_name = $0
- alias $0 $program_name
- end
+ $program_name = $0
+ alias $0 $program_name
$PROGRAM_NAME += "\0#{name}"
output_single(name + ": ", VERBOSE)
end
Index: test/rubygems/test_gem_uninstaller.rb
===================================================================
--- test/rubygems/test_gem_uninstaller.rb (revision 17779)
+++ test/rubygems/test_gem_uninstaller.rb (revision 17780)
@@ -10,8 +10,10 @@
ui = MockGemUi.new
util_setup_gem ui
- use_ui ui do
- @installer.install
+ build_rake_in do
+ use_ui ui do
+ @installer.install
+ end
end
end
Index: test/rubygems/test_gem_installer.rb
===================================================================
--- test/rubygems/test_gem_installer.rb (revision 17779)
+++ test/rubygems/test_gem_installer.rb (revision 17780)
@@ -529,8 +529,10 @@
Dir.mkdir util_inst_bindir
util_setup_gem
- use_ui @ui do
- assert_equal @spec, @installer.install
+ build_rake_in do
+ use_ui @ui do
+ assert_equal @spec, @installer.install
+ end
end
gemdir = File.join @gemhome, 'gems', @spec.full_name
@@ -600,8 +602,10 @@
util_setup_gem
@installer.ignore_dependencies = true
- use_ui @ui do
- assert_equal @spec, @installer.install
+ build_rake_in do
+ use_ui @ui do
+ assert_equal @spec, @installer.install
+ end
end
gemdir = File.join @gemhome, 'gems', @spec.full_name
@@ -646,9 +650,11 @@
install_dir = File.join @userhome, '.gem', 'gems', @spec.full_name
@spec.executables = ["executable"]
- use_ui @ui do
- util_setup_gem
- @installer.install
+ build_rake_in do
+ use_ui @ui do
+ util_setup_gem
+ @installer.install
+ end
end
assert File.exist?(File.join(install_dir, 'lib', 'code.rb'))
@@ -663,10 +669,12 @@
File.chmod 0755, @userhome
File.chmod 0000, util_inst_bindir
- use_ui @ui do
- setup
- util_setup_gem
- @installer.install
+ build_rake_in do
+ use_ui @ui do
+ setup
+ util_setup_gem
+ @installer.install
+ end
end
assert File.exist?(File.join(@userhome, '.gem', 'bin', 'executable'))
Index: test/rubygems/test_gem_ext_rake_builder.rb
===================================================================
--- test/rubygems/test_gem_ext_rake_builder.rb (revision 17779)
+++ test/rubygems/test_gem_ext_rake_builder.rb (revision 17780)
@@ -3,9 +3,6 @@
require 'rubygems/ext'
class TestGemExtRakeBuilder < RubyGemTestCase
- @@ruby = ENV["RUBY"]
- @@rake = ENV["rake"] || (@@ruby + " " + File.expand_path("../../../bin/rake", __FILE__))
-
def setup
super
@@ -16,24 +13,6 @@
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
@@ -46,9 +25,11 @@
output = []
realdir = nil # HACK /tmp vs. /private/tmp
- build_rake_in @ext do
- realdir = Dir.pwd
- Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', nil, @dest_path, output
+ build_rake_in do
+ Dir.chdir @ext do
+ realdir = Dir.pwd
+ Gem::Ext::RakeBuilder.build 'mkrf_conf.rb', nil, @dest_path, output
+ end
end
expected = [
@@ -73,8 +54,10 @@
output = []
error = assert_raise Gem::InstallError do
- build_rake_in @ext do
- Gem::Ext::RakeBuilder.build "mkrf_conf.rb", nil, @dest_path, output
+ build_rake_in do
+ Dir.chdir @ext do
+ Gem::Ext::RakeBuilder.build "mkrf_conf.rb", nil, @dest_path, output
+ end
end
end
Index: test/rubygems/gemutilities.rb
===================================================================
--- test/rubygems/gemutilities.rb (revision 17779)
+++ test/rubygems/gemutilities.rb (revision 17780)
@@ -392,5 +392,50 @@
self.class.process_based_port
end
+ def build_rake_in
+ gem_ruby = Gem.ruby
+ ruby = @@ruby
+ Gem.module_eval {@ruby = ruby}
+ env_rake = ENV["rake"]
+ ENV["rake"] = @@rake
+ yield @@rake
+ ensure
+ Gem.module_eval {@ruby = gem_ruby}
+ if env_rake
+ ENV["rake"] = env_rake
+ else
+ ENV.delete("rake")
+ end
+ end
+
+ def self.rubybin
+ if ruby = ENV["RUBY"]
+ return ruby
+ end
+ ruby = "ruby"
+ rubyexe = ruby+".exe"
+ 3.times do
+ if File.exist? ruby and File.executable? ruby and !File.directory? ruby
+ return File.expand_path(ruby)
+ end
+ if File.exist? rubyexe and File.executable? rubyexe
+ return File.expand_path(rubyexe)
+ end
+ ruby = File.join("..", ruby)
+ end
+ begin
+ require "rbconfig"
+ File.join(
+ RbConfig::CONFIG["bindir"],
+ RbConfig::CONFIG["ruby_install_name"] + RbConfig::CONFIG["EXEEXT"]
+ )
+ rescue LoadError
+ "ruby"
+ end
+ end
+
+ @@ruby = rubybin
+ @@rake = ENV["rake"] || (@@ruby + " " + File.expand_path("../../../bin/rake", __FILE__))
+
end
--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/