# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1421186931 -3600 # Node ID f5b2f3282e7d1eaa5edac4e587660145c956618a # Parent d8a3e745d34e2f649e513e65938500c2db3ebd7c more tests diff -r d8a3e745d34e -r f5b2f3282e7d t/10-dnsvi.t --- a/t/10-dnsvi.t Fri Nov 14 10:05:57 2014 +0100 +++ b/t/10-dnsvi.t Tue Jan 13 23:08:51 2015 +0100 @@ -19,8 +19,8 @@ return <$x>; } -# the results must match the t/samples/? files -my %result = ( +# the expect must match the t/samples/? files +my %expect = ( axfr => { RRSETS => 64, SOA => 1, @@ -57,25 +57,50 @@ AAAA => 0, MX => 2, }, + d => { + RRSETS => 15, + SOA => 1, + NS => 2, + A => [sort qw/ + abc.de.km21.de. + foo.km21.de. + tte.km21.de. + tte.km21.de. + bar.km21.de. + /], + TXT => 5, + AAAA => 0, + MX => 2, + }, ); # uniq list of rrtypes we want to test my @sets = do { my %h; - @h{ map { keys %{$_} } values %result } = (); + @h{ map { keys %{$_} } values %expect } = (); grep { $_ ne 'RRSETS' } sort keys %h; }; -foreach my $sample (sort keys %result) { +#foreach my $sample (sort keys %expect) { +foreach my $sample ('d') { my $file = "t/samples/$sample"; subtest "sample $file" => sub { - my %result = %{ $result{$sample} }; + my %expect = %{ $expect{$sample} }; my @zone = parse(slurp $file); - is @zone, $result{RRSETS} => "$sample: $result{RRSETS} RRSETS"; +# use Data::Dumper; +# diag Dumper \@zone; + is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS"; foreach my $type (@sets) { +# diag '----------->' . $type; + if (ref $expect{$type}) { + my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone; + is_deeply \@entries, $expect{$type} => 'list of labels'; + } + else { is grep({ $_->{rrset}{rrtype} eq $type } @zone), - $result{$type} => "$sample: $result{$type} $type"; + $expect{$type} => "number of $type rrsets\n"; + } } my ($added, $deleted) = delta(\@zone, \@zone); diff -r d8a3e745d34e -r f5b2f3282e7d t/samples/d --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/t/samples/d Tue Jan 13 23:08:51 2015 +0100 @@ -0,0 +1,19 @@ +$ORIGIN km21.de. +$TTL 1d +; do NOT EDIT the SOA records SERIAL number! +@ SOA pu.schlittermann.de. hostmaster.schlittermann.de. 1397766411 86400 7200 604800 300 + NS hh.schlittermann.de. + NS pu.schlittermann.de. + TXT "invoice: self" + TXT "utf8: km21.de" + TXT "start: 1396981300 2014-04-08T20:21:40" +tte A 85.214.245.1 + IN A 1.1.1.1 + TXT "tte" +; only one space + IN TXT "tte2" + IN MX 10 mexico. + IN MX 20 mx20. +foo A 1.1.1.2 +bar.km21.de. A 1.1.1.3 +abc.de A 1.2.3.4