From 2b322524cdd0a5b6767eb72422cacc04b71902f2 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 7 Jun 2010 21:27:16 +0000 Subject: * gem_prelude.rb: load full rubygems at LoadError for activation check. [ruby-core:29486] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28200 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- .../lib/rubygems-bug-child.rb | 1 + .../lib/rubygems-bug-child.rb | 1 + .../lib/rubygems-bug-parent.rb | 1 + .../specifications/rubygems-bug-child-1.0.gemspec | 29 ++++++++++++++++++++ .../specifications/rubygems-bug-child-1.1.gemspec | 29 ++++++++++++++++++++ .../specifications/rubygems-bug-parent-1.0.gemspec | 32 ++++++++++++++++++++++ test/rubygems/test_gem_activation.rb | 20 ++++++++++++++ 7 files changed, 113 insertions(+) create mode 100644 test/rubygems/gems/current/gems/rubygems-bug-child-1.0/lib/rubygems-bug-child.rb create mode 100644 test/rubygems/gems/current/gems/rubygems-bug-child-1.1/lib/rubygems-bug-child.rb create mode 100644 test/rubygems/gems/current/gems/rubygems-bug-parent-1.0/lib/rubygems-bug-parent.rb create mode 100644 test/rubygems/gems/current/specifications/rubygems-bug-child-1.0.gemspec create mode 100644 test/rubygems/gems/current/specifications/rubygems-bug-child-1.1.gemspec create mode 100644 test/rubygems/gems/current/specifications/rubygems-bug-parent-1.0.gemspec create mode 100644 test/rubygems/test_gem_activation.rb (limited to 'test/rubygems') diff --git a/test/rubygems/gems/current/gems/rubygems-bug-child-1.0/lib/rubygems-bug-child.rb b/test/rubygems/gems/current/gems/rubygems-bug-child-1.0/lib/rubygems-bug-child.rb new file mode 100644 index 0000000000..4544e24d99 --- /dev/null +++ b/test/rubygems/gems/current/gems/rubygems-bug-child-1.0/lib/rubygems-bug-child.rb @@ -0,0 +1 @@ +$bug_3140 = "1.0" diff --git a/test/rubygems/gems/current/gems/rubygems-bug-child-1.1/lib/rubygems-bug-child.rb b/test/rubygems/gems/current/gems/rubygems-bug-child-1.1/lib/rubygems-bug-child.rb new file mode 100644 index 0000000000..92edd5f91c --- /dev/null +++ b/test/rubygems/gems/current/gems/rubygems-bug-child-1.1/lib/rubygems-bug-child.rb @@ -0,0 +1 @@ +$bug_3140 = "1.1" diff --git a/test/rubygems/gems/current/gems/rubygems-bug-parent-1.0/lib/rubygems-bug-parent.rb b/test/rubygems/gems/current/gems/rubygems-bug-parent-1.0/lib/rubygems-bug-parent.rb new file mode 100644 index 0000000000..2a8eaba1f6 --- /dev/null +++ b/test/rubygems/gems/current/gems/rubygems-bug-parent-1.0/lib/rubygems-bug-parent.rb @@ -0,0 +1 @@ +require "rubygems-bug-child" diff --git a/test/rubygems/gems/current/specifications/rubygems-bug-child-1.0.gemspec b/test/rubygems/gems/current/specifications/rubygems-bug-child-1.0.gemspec new file mode 100644 index 0000000000..4dc6cfdb31 --- /dev/null +++ b/test/rubygems/gems/current/specifications/rubygems-bug-child-1.0.gemspec @@ -0,0 +1,29 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{rubygems-bug-child} + s.version = "1.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Yehuda Katz"] + s.date = %q{2010-04-12} + s.description = %q{Demonstrates a rubygems bug that exists in 1.9 because of gem prelude but not 1.8} + s.email = %q{wycats@gmail.com} + s.files = ["lib/rubygems-bug-child.rb"] + s.homepage = %q{http://www.yehudakatz.com} + s.require_paths = ["lib"] + s.required_ruby_version = Gem::Requirement.new(">= 1.8.7") + s.rubyforge_project = %q{rubygems-bug} + s.rubygems_version = %q{1.3.6} + s.summary = %q{Demonstrates a rubygems bug} + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 3 + + if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then + else + end + else + end +end diff --git a/test/rubygems/gems/current/specifications/rubygems-bug-child-1.1.gemspec b/test/rubygems/gems/current/specifications/rubygems-bug-child-1.1.gemspec new file mode 100644 index 0000000000..6428ee04c8 --- /dev/null +++ b/test/rubygems/gems/current/specifications/rubygems-bug-child-1.1.gemspec @@ -0,0 +1,29 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{rubygems-bug-child} + s.version = "1.1" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Yehuda Katz"] + s.date = %q{2010-04-12} + s.description = %q{Demonstrates a rubygems bug that exists in 1.9 because of gem prelude but not 1.8} + s.email = %q{wycats@gmail.com} + s.files = ["lib/rubygems-bug-child.rb"] + s.homepage = %q{http://www.yehudakatz.com} + s.require_paths = ["lib"] + s.required_ruby_version = Gem::Requirement.new(">= 1.8.7") + s.rubyforge_project = %q{rubygems-bug} + s.rubygems_version = %q{1.3.6} + s.summary = %q{Demonstrates a rubygems bug} + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 3 + + if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then + else + end + else + end +end diff --git a/test/rubygems/gems/current/specifications/rubygems-bug-parent-1.0.gemspec b/test/rubygems/gems/current/specifications/rubygems-bug-parent-1.0.gemspec new file mode 100644 index 0000000000..0f714c0624 --- /dev/null +++ b/test/rubygems/gems/current/specifications/rubygems-bug-parent-1.0.gemspec @@ -0,0 +1,32 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{rubygems-bug-parent} + s.version = "1.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Yehuda Katz"] + s.date = %q{2010-04-12} + s.description = %q{Demonstrates a rubygems bug that exists in 1.9 because of gem prelude but not 1.8} + s.email = %q{wycats@gmail.com} + s.files = ["lib/rubygems-bug-parent.rb"] + s.homepage = %q{http://www.yehudakatz.com} + s.require_paths = ["lib"] + s.required_ruby_version = Gem::Requirement.new(">= 1.8.7") + s.rubyforge_project = %q{rubygems-bug} + s.rubygems_version = %q{1.3.6} + s.summary = %q{Demonstrates a rubygems bug} + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 3 + + if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then + s.add_runtime_dependency(%q, ["= 1.0.0"]) + else + s.add_dependency(%q, ["= 1.0.0"]) + end + else + s.add_dependency(%q, ["= 1.0.0"]) + end +end diff --git a/test/rubygems/test_gem_activation.rb b/test/rubygems/test_gem_activation.rb new file mode 100644 index 0000000000..d39f9b3c59 --- /dev/null +++ b/test/rubygems/test_gem_activation.rb @@ -0,0 +1,20 @@ +require_relative '../ruby/envutil' +require 'test/unit' + +class TestGemActivation < Test::Unit::TestCase + def test_activation + bug3140 = '[ruby-core:29486]' + src = %{begin + require 'rubygems-bug-parent' +rescue Gem::LoadError + puts $! +else + puts $bug_3140 +end} + basedir = File.expand_path("../gems/current", __FILE__) + env = {"HOME"=>basedir, "GEM_HOME"=>basedir, "GEM_PATH"=>basedir} + assert_in_out_err([env, "-rrubygems-bug-child", "-e", src], "", + /can't activate rubygems-bug-child.*already activated rubygems-bug-child-1\.1/, [], + $bug_3140) + end +end if defined?(::Gem) -- cgit v1.2.3