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
|
use strict;
BEGIN { $^W++ }
use Test::More tests => 19;
use lib '../lib/';
# See if the module compiles - it should...
require_ok( 'DNS::ZoneParse' );
my $zone_data = do { local $/; <DATA> };
close DATA;
sub on_parse_fail {
my ( $dns, $line, $reason ) = @_;
if ( $line !~ /this should fail/ ) {
ok( 0, "Parse failure ($reason) on line: $line\n" );
}
}
my $str_zonefile = DNS::ZoneParse->new( \$zone_data, undef, \&on_parse_fail );
ok( $str_zonefile, 'new obj from string' );
ok( $str_zonefile->last_parse_error_count() == 0, "caught all errors (none!)" );
ok( $str_zonefile->ttl_to_int( '0' ) == 0, 'ttl 0' );
ok( $str_zonefile->ttl_to_int( '1' ) == 1, 'ttl 1' );
ok( $str_zonefile->ttl_to_int( '1S' ) == 1, 'ttl 1S' );
ok( $str_zonefile->ttl_to_int( '1M' ) == 60, 'ttl 1M' );
ok( $str_zonefile->ttl_to_int( '1H' ) == 60 * 60, 'ttl 1H' );
ok( $str_zonefile->ttl_to_int( '1D' ) == 24 * 60 * 60, 'ttl 1D' );
ok( $str_zonefile->ttl_to_int( '1W' ) == 7 * 24 * 60 * 60, 'ttl 1W' );
ok( $str_zonefile->ttl_to_int( '4D' ) == 4 * 24 * 60 * 60, 'ttl 4D' );
ok( $str_zonefile->ttl_to_int( '8M' ) == 8 * 60, 'ttl 8M' );
ok( $str_zonefile->ttl_to_int( '8000S' ) == 8000, 'ttl 8000S' );
ok( $str_zonefile->ttl_to_int( '0W0D0H0M1S' ) == 1, 'ttl 0W0D0H0M1S' );
ok( $str_zonefile->ttl_to_int( '4W3D2H1M0S' ) == ( 0 + ( 60 * ( 1 + 60 * ( 2 + 24 * ( 3 + 7 * 4 ) ) ) ) ), 'ttl 4W3D2H1M0S' );
ok( $str_zonefile->ttl_to_int( '1W2D1H2M1S' ) == ( 1 + ( 60 * ( 2 + 60 * ( 1 + 24 * ( 2 + 7 * 1 ) ) ) ) ), 'ttl 1W2D1H2M1S' );
ok( $str_zonefile->ttl_to_int( '2W1D400H1M2S' ) == ( 2 + ( 60 * ( 1 + 60 * ( 400 + 24 * ( 1 + 7 * 2 ) ) ) ) ), 'ttl 2W1D400H1M2S' );
ok( $str_zonefile->ttl_to_int( '1w0s' ) == ( 0 + ( 60 * ( 0 + 60 * ( 0 + 24 * ( 0 + 7 * 1 ) ) ) ) ), 'ttl 1w0s' );
ok( $str_zonefile->ttl_to_int( '4h1D' ) == ( 0 + ( 60 * ( 0 + 60 * ( 4 + 24 * ( 1 + 7 * 0 ) ) ) ) ), 'ttl 4h1D' );
__DATA__
dns-zoneparse-test.net. IN SOA ns0.dns-zoneparse-test.net. support\.contact.dns-zoneparse-test.net. (
2000100502 ; serial number
10801 ; refresh
3600 ; retry
691200 ; expire
86400 ) ; minimum TTL
@ IN NS ns0.dns-zoneparse-test.net.
@ 43200 IN NS ns1.dns-zoneparse-test.net.
|