On Sun, Dec 07, 2014 at 10:58:06PM +0900, Kenshi Muto wrote:
> Package: ruby-minitest
> Severity: important
> Version: 5.4.2-1
> 
> Dear Maintainer,
> 
> I noticed ruby-minitest installation broke Ruby programs
> which used 'test/unit' on Sid or Jessie.
> 
> Here is a test log on pure Sid environment with using pbuilder.
> 
> ---------------------------------------- without ruby-minitest
> # irb
> irb(main):001:0> require 'test/unit'
> => true
> irb(main):002:0> 
> Run options: 
> 
> # Running tests:
> 
> Finished tests in 0.005990s, 0.0000 tests/s, 0.0000 assertions/s.
> 0 tests, 0 assertions, 0 failures, 0 errors, 0 skips
> 
> ruby -v: ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]
> ----------------------------------------
> 
> ---------------------------------------- with ruby-minitest
> # apt-get install ruby-minitest
>  ...
> Unpacking ruby-minitest (5.4.2-1) ...
> 
> # irb
> irb(main):001:0> require 'test/unit'
> Warning: you should require 'minitest/autorun' instead.
> Warning: or add 'gem "minitest"' before 'require "minitest/autorun"'
> From:
>   /usr/lib/ruby/2.1.0/test/unit.rb:1:in `<top (required)>'
>   (irb):1:in `irb_binding'
>   /usr/lib/ruby/2.1.0/irb/workspace.rb:86:in `eval'
>   /usr/lib/ruby/2.1.0/irb/workspace.rb:86:in `evaluate'
>   /usr/lib/ruby/2.1.0/irb/context.rb:380:in `evaluate'
>   /usr/lib/ruby/2.1.0/irb.rb:492:in `block (2 levels) in eval_input'
>   /usr/lib/ruby/2.1.0/irb.rb:624:in `signal_status'
>   /usr/lib/ruby/2.1.0/irb.rb:489:in `block in eval_input'
>   /usr/lib/ruby/2.1.0/irb/ruby-lex.rb:247:in `block (2 levels) in 
> each_top_level_statement'
>   /usr/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in `loop'
>   /usr/lib/ruby/2.1.0/irb/ruby-lex.rb:233:in `block in 
> each_top_level_statement'
>   /usr/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in `catch'
>   /usr/lib/ruby/2.1.0/irb/ruby-lex.rb:232:in `each_top_level_statement'
>   /usr/lib/ruby/2.1.0/irb.rb:488:in `eval_input'
>   /usr/lib/ruby/2.1.0/irb.rb:397:in `block in start'
>   /usr/lib/ruby/2.1.0/irb.rb:396:in `catch'
>   /usr/lib/ruby/2.1.0/irb.rb:396:in `start'
>   /usr/bin/irb:11:in `<main>'
> MiniTest::Unit::TestCase is now Minitest::Test. From 
> /usr/lib/ruby/2.1.0/test/unit/testcase.rb:8:in `<module:Unit>'
> NameError: undefined method `_run_suite' for class `Test::Unit::Runner'
>       from /usr/lib/ruby/2.1.0/test/unit.rb:676:in `<class:Runner>'
>       from /usr/lib/ruby/2.1.0/test/unit.rb:261:in `<module:Unit>'
>       from /usr/lib/ruby/2.1.0/test/unit.rb:15:in `<module:Test>'
>       from /usr/lib/ruby/2.1.0/test/unit.rb:7:in `<top (required)>'
>       from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
> `require'
>       from /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in 
> `require'
>       from (irb):1
>       from /usr/bin/irb:11:in `<main>'
> irb(main):002:0>
> ----------------------------------------

The problem is that the test/unit provided with the Ruby interpreter is
actually a compatibility layer provided by and older version of
minitest.

The newest standalone version of minitest splittted that compatibility
layer into a separate package, and that is not in Debian. This results
in the compatibility layer from the old minitest provided by the
interpreter using the (incompatible) minitest core from the new minitest
in ruby-minitest.

There is no easy fix for this for now; please install ruby-test-unit and
your specific problem will go away.

-- 
Antonio Terceiro <[email protected]>

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Pkg-ruby-extras-maintainers mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-ruby-extras-maintainers

Reply via email to