[DRE-maint] Bug#772462: Bug#772462: ruby-minitest: breaks test/unit

Antonio Terceiro terceiro at debian.org
Mon Dec 8 17:20:57 UTC 2014


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 <terceiro at debian.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-ruby-extras-maintainers/attachments/20141208/9cff35ac/attachment.sig>


More information about the Pkg-ruby-extras-maintainers mailing list