This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / cpan / Socket / t / getnameinfo.t
CommitLineData
8bb05de3 1use v5.6.1;
27dd37a3
PE
2use strict;
3use warnings;
17673bf5 4use Test::More tests => 13;
27dd37a3 5
c2654555 6use Socket qw(:addrinfo AF_INET pack_sockaddr_in inet_aton);
27dd37a3
PE
7
8my ( $err, $host, $service );
9
10( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV );
11cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST|NI_NUMERICSERV' );
12cmp_ok( $err, "eq", "", '$err eq "" for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST|NI_NUMERICSERV' );
13
14is( $host, "127.0.0.1", '$host is 127.0.0.1 for NH/NS' );
15is( $service, "80", '$service is 80 for NH/NS' );
16
c2654555
CBW
17( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV, NIx_NOHOST );
18is( $host, undef, '$host is undef for NIx_NOHOST' );
19is( $service, "80", '$service is 80 for NS, NIx_NOHOST' );
20
21( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST|NI_NUMERICSERV, NIx_NOSERV );
665a0623
RS
22is( $host, "127.0.0.1", '$host is 127.0.0.1 for NIx_NOSERV' );
23is( $service, undef, '$service is undef for NS, NIx_NOSERV' );
c2654555 24
27dd37a3
PE
25( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICSERV );
26cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICSERV' );
27
36998252
JH
28# We can't meaningfully compare '$host' with anything specific, all we can be
29# sure is it's not empty
30ok( length $host, '$host is nonzero length for NS' );
27dd37a3 31
8fad3ae2 32( $err, $host, $service ) = getnameinfo( pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ), NI_NUMERICHOST | NI_NUMERICSERV );
36998252 33cmp_ok( $err, "==", 0, '$err == 0 for {family=AF_INET,port=80,sinaddr=127.0.0.1}/NI_NUMERICHOST' );
27dd37a3 34
36998252 35ok( length $service, '$service is nonzero length for NH' );
17673bf5
CBW
36
37# RT79557
38pack_sockaddr_in( 80, inet_aton( "127.0.0.1" ) ) =~ m/^(.*)$/s;
39( $err, $host, $service ) = getnameinfo( $1, NI_NUMERICHOST|NI_NUMERICSERV );
40cmp_ok( $err, "==", 0, '$err == 0 for $1' ) or diag( '$err was: ' . $err );