diff options
| -rw-r--r-- | lib/ipaddr.rb | 4 | ||||
| -rw-r--r-- | test/test_ipaddr.rb | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/ipaddr.rb b/lib/ipaddr.rb index 1ad7980e9e..fca75deff9 100644 --- a/lib/ipaddr.rb +++ b/lib/ipaddr.rb @@ -721,8 +721,8 @@ class IPAddr octets = addr.split('.') end octets.inject(0) { |i, s| - (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address: #{@addr}" - (s != '0') && s.start_with?('0') and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous: #{@addr}" + (n = s.to_i) < 256 or raise InvalidAddressError, "invalid address: #{addr}" + (s != '0') && s.start_with?('0') and raise InvalidAddressError, "zero-filled number in IPv4 address is ambiguous: #{addr}" i << 8 | n } end diff --git a/test/test_ipaddr.rb b/test/test_ipaddr.rb index 64927a1444..005927cd05 100644 --- a/test/test_ipaddr.rb +++ b/test/test_ipaddr.rb @@ -620,4 +620,16 @@ class TC_Operator < Test::Unit::TestCase assert_equal(true, s.include?(a5)) assert_equal(true, s.include?(a6)) end + + def test_raises_invalid_address_error_with_error_message + e = assert_raise(IPAddr::InvalidAddressError) do + IPAddr.new('192.168.0.1000') + end + assert_equal('invalid address: 192.168.0.1000', e.message) + + e = assert_raise(IPAddr::InvalidAddressError) do + IPAddr.new('192.168.01.100') + end + assert_equal('zero-filled number in IPv4 address is ambiguous: 192.168.01.100', e.message) + end end |
