[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]