@@ -183,7 +183,39 @@ def assert_uv(name, &block)
183183 assert_equal :getaddrinfo , req . type_name
184184
185185 # getaddrinfo without callback
186- assert_raise ( ArgumentError ) { UV . getaddrinfo 'example.com' , 'http' }
186+ assert_raise ( ArgumentError ) { UV . getaddrinfo 'localhost' , 'http' }
187+ end
188+
189+ assert 'UV.getaddrinfo ipv4' do
190+ UV ::getaddrinfo ( 'localhost' , 'http' , { :ai_family => :ipv4 } ) do |x , info |
191+ assert_kind_of UV ::Ip4Addr , info . addr
192+ end
193+ UV ::run ( )
194+ end
195+
196+ assert 'UV.getaddrinfo ipv6' do
197+ UV ::getaddrinfo ( '::1' , 'http' , { :ai_family => :ipv6 } ) do |x , info |
198+ addr = info . addr
199+ assert_kind_of UV ::Ip6Addr , addr
200+ assert_kind_of Integer , addr . scope_id
201+ if addr . scope_id != 0 && addr . respond_to? ( :if_indextoname )
202+ assert_kind_of String , addr . if_indextoname
203+ assert_kind_of String , addr . if_indextoiid
204+ end
205+ end
206+ UV ::run ( )
207+ end
208+
209+ assert 'UV.getaddrinfo.next' do
210+ UV ::getaddrinfo ( 'localhost' , 'http' ) do |x , info |
211+ while info
212+ assert_kind_of UV ::Addrinfo , info
213+ info = info . next
214+ end
215+
216+ assert_nil info
217+ end
218+ UV ::run ( )
187219end
188220
189221assert_uv 'UV.getnameinfo' do
0 commit comments