This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove invalid ASSUME from MULTIDEREF code
[perl5.git] / cpan / Socket / t / getnameinfo.t
1 use strict;
2 use warnings;
3 use Test::More tests => 12;
4
5 use Socket qw(:addrinfo AF_INET pack_sockaddr_in inet_aton);
6
7 my ( $err, $host, $service );
8
9 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV );
10 cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST|NI_NUMERICSERV' );
11 cmp_ok( $err, "eq", "", '$err eq "" for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST|NI_NUMERICSERV' );
12
13 is( $host, "127.0.0.1", '$host is 127.0.0.1 for NH/NS' );
14 is( $service, "80", '$service is 80 for NH/NS' );
15
16 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV, NIx_NOHOST );
17 is( $host, undef, '$host is undef for NIx_NOHOST' );
18 is( $service, "80", '$service is 80 for NS, NIx_NOHOST' );
19
20 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV, NIx_NOSERV );
21 is( $host, "127.0.0.1", '$host is undef for NIx_NOSERV' );
22 is( $service, undef, '$service is 80 for NS, NIx_NOSERV' );
23
24 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICSERV );
25 cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICSERV' );
26
27 # We can't meaningfully compare '$host' with anything specific, all we can be
28 # sure is it's not empty
29 ok( length $host, '$host is nonzero length for NS' );
30
31 ( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST | NI_NUMERICSERV );
32 cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST' );
33
34 ok( length $service, '$service is nonzero length for NH' );