diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 525466b..0913837 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -167,7 +167,7 @@ def ==(other) rescue false else - @family == other.family && @addr == other.to_i + @family == other.family && @addr == other.to_i && @mask_addr == other.instance_variable_get(:@mask_addr) end # Returns a new ipaddr built by masking IP address with the given diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb index 7ecd37e..9b59f66 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -440,12 +440,16 @@ def test_minus end def test_equal - assert_equal(true, @a == IPAddr.new("3FFE:505:2::")) - assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::")) - assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0")) - assert_equal(false, @a == IPAddr.new("3ffe:505:3::")) + assert_equal(true, @a == IPAddr.new("3FFE:0505:2::/48")) + assert_equal(true, @a == IPAddr.new("3ffe:0505:0002::/48")) + assert_equal(true, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0/48")) + assert_equal(false, @a == IPAddr.new("3FFE:505:2::")) + assert_equal(false, @a == IPAddr.new("3ffe:0505:0002::")) + assert_equal(false, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:0")) + assert_equal(false, @a == IPAddr.new("3ffe:0505:2::1/128")) + assert_equal(false, @a == IPAddr.new("3ffe:0505:0002:0:0:0:0:1/128")) assert_equal(true, @a != IPAddr.new("3ffe:505:3::")) - assert_equal(false, @a != IPAddr.new("3ffe:505:2::")) + assert_equal(true, @a != IPAddr.new("3ffe:505:2::")) assert_equal(false, @a == @inconvertible_range) assert_equal(false, @a == @inconvertible_string) end