Skip to content


failed test (rake version) on fresh checkout #47

bhenderson opened this Issue · 10 comments

4 participants

$ ruby --version
ruby 1.8.7 (2010-01-10 patchlevel 249) [universal-darwin11.0]
$ rake --version
rake, version
$ rake
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -w -Ilib:bin:test:. -e 'require "rubygems"; gem "minitest"; require "minitest/autorun"; require "test/test_isolate.rb"; require "test/test_isolate_entry.rb"; require "test/test_isolate_events.rb"; require "test/test_isolate_sandbox.rb"' -- 
Run options: --seed 31197

# Running tests:


Finished tests in 0.111886s, 303.8807 tests/s, 983.1436 assertions/s.

  1) Failure:
test_cleanup_redundant(TestIsolateSandbox) [./test/test_isolate_sandbox.rb:156]:
--- expected
+++ actual
@@ -1 +1 @@
-[["hoe", "2.3.3", "test/fixtures/with-hoe"], ["rake", "0.8.7", "test/fixtures/with-hoe"], ["rubyforge", "1.0.4", "test/fixtures/with-hoe"]]
+[["hoe", "2.3.3", "test/fixtures/with-hoe"], ["rubyforge", "1.0.4", "test/fixtures/with-hoe"]]

34 tests, 110 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1): [/System/Library/Frameworks/Ruby.framework/...]

Tasks: TOP => default => test
(See full trace by running task with --trace)

What rubygems version?

@zenspider zenspider was assigned

I get the same failure. Rubygems 1.8.23, Ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]


I can repro.


Failing commit:

83535d7 * + Remove isolated gems that are now satisfied globally. (luis)


The failure comes from rubygems:

commit 7d43f1418a048bac277344df962aafd00797230b
Author: Evan Phoenix <>
Date:   Fri Feb 10 08:55:13 2012 -0800

    Uniquify the spec list based on directory order priority


-          specs << spec if spec
+          specs[spec.full_name] ||= spec if spec

@evanphx (and/or @drbrain), the failing test in question is specifically asserting that we'll delete a gem from the isolated repo because it is satisfied by the "system" repo in GEM_PATH (global gems). With this change the visibility of such a thing is thrown out the window. It also means that Gem::Specification._all isn't actually all but most. Is this what we want? If so, is the test simply invalid or is there some other way we should go about seeing when we should delete something?

[master 07ea8a2] skipping test_cleanup_redundant as rubygems changed the way it collects gems
 1 files changed, 2 insertions(+), 0 deletions(-)

I think that my change makes _all correct. Rather than containing duplicate specs for the same name-version and thusly leaving the ambiguity up to all users of _all, the change respects GEM_PATH as like PATH and keeps the list unique and proper.


So the last version of rubygems to work was 1.8.15 / 2012-01-06. This should be fixed in the next version of rubygems (1.8.25?).

@zenspider zenspider closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.