110 my @zone = parse(slurp $file); |
117 my @zone = parse(slurp $file); |
111 is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS"; |
118 is @zone, $expect{RRSETS} => "$sample: $expect{RRSETS} RRSETS"; |
112 foreach my $type (@sets) { |
119 foreach my $type (@sets) { |
113 if (ref $expect{$type} eq ref[]) { |
120 if (ref $expect{$type} eq ref[]) { |
114 my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
121 my @entries = sort map { $_->{label} } grep { $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
115 is_deeply \@entries, $expect{$type} => 'list of labels'; |
122 is_deeply \@entries, [sort @{$expect{$type}} ] => 'list of labels'; |
116 } |
123 } |
117 elsif (ref $expect{$type} eq ref{}) { |
124 elsif (ref $expect{$type} eq ref{}) { |
118 foreach my $label (keys %{ $expect{$type} }) { |
125 foreach my $label (keys %{ $expect{$type} }) { |
119 my @entries = sort map { $_->{data} } grep { $_->{label} eq $label and $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
126 my @entries = sort map { $_->{data} } grep { $_->{label} eq $label and $_->{rrtype} eq $type } map { $_->{rrset} } @zone; |
120 is_deeply \@entries, $expect{$type}{$label} => 'complete rrsets', |
127 is_deeply \@entries, [sort @{ $expect{$type}{$label} }] => 'complete rrsets', |
121 } |
128 } |
122 } |
129 } |
123 else { |
130 else { |
124 is grep({ $_->{rrset}{rrtype} eq $type } @zone), |
131 is grep({ $_->{rrset}{rrtype} eq $type } @zone), |
125 $expect{$type}//0 => "number of $type rrsets"; |
132 $expect{$type}//0 => "number of $type rrsets"; |