[#67346] Future of test suites for Ruby — Charles Oliver Nutter <headius@...>

I'll try to be brief so we can discuss all this. tl;dr: RubySpec is

19 messages 2015/01/05

[ruby-core:67627] [ruby-trunk - Bug #10745] Special combinations of parameters in assert_equal (test/unit) may cause exceptions

From: kou@...
Date: 2015-01-16 12:03:27 UTC
List: ruby-core #67627
Issue #10745 has been updated by Kouhei Sutou.


I think that it should be fixed in ipaddr.

The following code should print false instead of raising an exception:

```
% /tmp/local/bin/ruby -v -r ipaddr -e 'puts(IPAddr.new == [])'
ruby 2.3.0dev (2015-01-16 trunk 49282) [x86_64-linux]
/tmp/local/lib/ruby/2.3.0/ipaddr.rb:471:in `initialize': undefined method `to_i' for []:Array (NoMethodError)
	from /tmp/local/lib/ruby/2.3.0/ipaddr.rb:516:in `new'
	from /tmp/local/lib/ruby/2.3.0/ipaddr.rb:516:in `coerce_other'
	from /tmp/local/lib/ruby/2.3.0/ipaddr.rb:150:in `=='
	from -e:1:in `<main>'
```

----------------------------------------
Bug #10745: Special combinations of parameters in assert_equal (test/unit) may cause exceptions
https://bugs.ruby-lang.org/issues/10745#change-51049

* Author: Herwin .
* Status: Rejected
* Priority: Low
* Assignee: 
* ruby -v: 2.1.2p95
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
~~~ruby
require 'test/unit'
require 'ipaddr'

class TestX < Test::Unit::TestCase
  def test_x
    assert_equal([IPAddr.new('1.2.3.4')], [[1,2,3]])
  end
end
~~~

This results in the following trace:

~~~
NoMethodError: undefined method `to_i' for [1, 2, 3]:Array
    /usr/lib/ruby/2.1.0/ipaddr.rb:471:in `initialize'
    /usr/lib/ruby/2.1.0/ipaddr.rb:516:in `new'
    /usr/lib/ruby/2.1.0/ipaddr.rb:516:in `coerce_other'
    /usr/lib/ruby/2.1.0/ipaddr.rb:150:in `=='
    /usr/lib/ruby/2.1.0/test/unit/assertions.rb:250:in `=='
    /usr/lib/ruby/2.1.0/test/unit/assertions.rb:250:in `assert_equal'
~~~

I don't think the `assert_equal` is supposed to throw these kind of errors



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next