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);