summaryrefslogtreecommitdiff
path: root/test/resolv/test_dns.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/resolv/test_dns.rb')
-rw-r--r--test/resolv/test_dns.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/resolv/test_dns.rb b/test/resolv/test_dns.rb
index e7857248ce..9f993ba96a 100644
--- a/test/resolv/test_dns.rb
+++ b/test/resolv/test_dns.rb
@@ -197,4 +197,21 @@ class TestResolvDNS < Test::Unit::TestCase
expected = (['0'] * 32 + ['ip6', 'arpa']).map {|label| Resolv::DNS::Label::Str.new(label) }
assert_equal(expected, labels)
end
+
+ def test_too_big_label_address
+ n = 2000
+ m = Resolv::DNS::Message::MessageEncoder.new {|msg|
+ 2.times {
+ n.times {|i| msg.put_labels(["foo#{i}"]) }
+ }
+ }
+ Resolv::DNS::Message::MessageDecoder.new(m.to_s) {|msg|
+ 2.times {
+ n.times {|i|
+ assert_equal(["foo#{i}"], msg.get_labels.map {|label| label.to_s })
+ }
+ }
+ }
+ assert_operator(2**14, :<, m.to_s.length)
+ end
end