1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
#!/usr/bin/perl
#
use strict;
use warnings;
use IO::File;
use Test::More tests => 10;
use Net::DNS;
use Net::DNS::Resolver::Unbound -register;
ok( Net::DNS::Resolver::Unbound->string(), 'default configuration' );
my $recursive = Net::DNS::Resolver::Unbound->new( nameservers => [] );
ok( $recursive, 'create fully recursive resolver instance' );
is( scalar( $recursive->nameservers ), 0, 'empty nameserver list' );
my $resolver = Net::DNS::Resolver::Unbound->new( debug_level => 0, force_v4 => 1 );
ok( $resolver, 'create stub resolver instance' );
$resolver->nameservers(qw(::1 127.0.0.1 127.0.0.53));
is( scalar( $resolver->nameservers ), 3, 'replace nameserver list' );
$resolver->set_stub( 'zone', '10.1.2.3', 0 );
my $option = 'outgoing-port-avoid';
my $value = '3200-3201';
my $return = $resolver->option( $option, $value );
is( $return, undef, "resolver->option( $option, $value )" );
my $single = $resolver->option($option);
is( $single, $value, 'single-valued resolver option' );
$resolver->option( $option, '3202-3203' );
$resolver->option( $option, '3204-3205' );
my @multi = $resolver->option($option);
is( scalar(@multi), 3, 'multi-valued resolver option' );
my $bogus = $resolver->option('bogus');
is( $bogus, undef, 'nonexistent resolver option' );
ok( $resolver->string(), '$resolver->string' );
my $index = $$ % 10000;
my @filename;
sub filename {
my $filename = join '', 'file', $index++;
close( IO::File->new( $filename, '>' ) or die $! );
push @filename, $filename;
return $filename;
}
END {
unlink $_ foreach @filename;
}
## exercise context methods, some of which may fail
eval { $resolver->option( 'outgoing-port-avoid', undef ) };
eval { $resolver->config(filename) };
eval { $resolver->set_tls(0) };
eval { $resolver->resolv_conf(filename) };
eval { $resolver->hosts(filename) };
eval { $resolver->add_ta('zone DS 12345 7 2 d93738479adb6546776932f60790e87bc79c20db85972b4b341347335a8e9f98') };
eval { $resolver->add_ta_file(filename) };
eval { $resolver->add_ta_autr(filename) };
eval { $resolver->trusted_keys(filename) };
eval { $resolver->debug_out(filename) };
eval { $resolver->debug_level(1) };
eval { $resolver->async_thread(0) };
exit;
|