From ff6bd7fb4ef54b6963b5a09f2e09e3dd0d9d7156 Mon Sep 17 00:00:00 2001 From: ishikawa999 Date: Sat, 27 Apr 2024 16:24:39 +0900 Subject: [PATCH] [ruby/ipaddr] Fix InvalidAddressError message https://github.com/ruby/ipaddr/commit/c96dbadee3 --- lib/ipaddr.rb | 4 ++-- 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