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