summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorMattias Päivärinta <mattias.paivarinta@iis.se>2023-12-04 10:52:12 +0100
committerGitHub <noreply@github.com>2023-12-04 10:52:12 +0100
commit3b9154fa6e827dc63c53098ac9f8f86d79955db9 (patch)
tree258cda1d534a7ea6fee72fc028ba3bb6d446f152 /t
parent56d96c517203eb1cd1096f5fa5b7f9393b7e8587 (diff)
parent0541cca90eb6d610467543c8478e5a39041af51d (diff)
Merge pull request #136 from mattias-p/ignore-incomplete-rr
Ignore incomplete RRs
Diffstat (limited to 't')
-rw-r--r--t/packet.t38
-rw-r--r--t/rr.t7
2 files changed, 42 insertions, 3 deletions
diff --git a/t/packet.t b/t/packet.t
index 8be8565..7972dbc 100644
--- a/t/packet.t
+++ b/t/packet.t
@@ -1,8 +1,10 @@
-use Test::More;
-use Test::Fatal;
-
use strict;
use warnings;
+use Test::More;
+
+use MIME::Base64;
+use Test::Differences;
+use Test::Fatal;
use_ok('Zonemaster::LDNS');
@@ -59,4 +61,34 @@ subtest "croak when stringifying packet with malformed CAA" => sub {
like( exception { $will_croak->() }, qr/^Failed to convert packet to string/ );
};
+subtest "Answer section" => sub {
+ # Parse a packet with a single incomplete MX record
+ my $data = decode_base64( "EjSFgAABAAIAAAAAB2V4YW1wbGUCc2UAAA8AAcAMAA8AAQABUYAAAgAKwAwAAQABAAFRgAAEwAACAQ==");
+ my $p = Zonemaster::LDNS::Packet->new_from_wireformat( $data );
+
+ my $rr_count = scalar $p->answer;
+
+ is $rr_count, 1, "keep complete RRs but ignore incomplete ones";
+};
+
+subtest "Authority section" => sub {
+ # Parse a packet with a single incomplete MX record
+ my $data = decode_base64( "EjSFgAABAAAAAgAAB2V4YW1wbGUCc2UAAA8AAcAMAA8AAQABUYAAAgAKwAwAAQABAAFRgAAEwAACAQ==" );
+ my $p = Zonemaster::LDNS::Packet->new_from_wireformat( $data );
+
+ my $rr_count = scalar $p->authority;
+
+ is $rr_count, 1, "keep complete RRs but ignore incomplete ones";
+};
+
+subtest "Additional section" => sub {
+ # Parse a packet with a single incomplete MX record
+ my $data = decode_base64( "EjSFgAABAAAAAAACB2V4YW1wbGUCc2UAAA8AAcAMAA8AAQABUYAAAgAKwAwAAQABAAFRgAAEwAACAQ==" );
+ my $p = Zonemaster::LDNS::Packet->new_from_wireformat( $data );
+
+ my $rr_count = scalar $p->additional;
+
+ is $rr_count, 1, "keep complete RRs but ignore incomplete ones";
+};
+
done_testing();
diff --git a/t/rr.t b/t/rr.t
index b83ee6c..eb52fae 100644
--- a/t/rr.t
+++ b/t/rr.t
@@ -255,6 +255,13 @@ subtest 'NSEC3PARAM with salt' => sub {
is( lc($nsec3param->owner), 'whitehouse.gov.' );
};
+subtest 'SIG' => sub {
+ my $sig = Zonemaster::LDNS::RR->new_from_string('sig.example. 3600 IN SIG A 1 2 3600 19970102030405 19961211100908 2143 sig.example. AIYADP8d3zYNyQwW2EM4wXVFdslEJcUx/fxkfBeH1El4ixPFhpfHFElxbvKoWmvjDTCmfiYy2X+8XpFjwICHc398kzWsTMKlxovpz2FnCTM=');
+ isa_ok( $sig, 'Zonemaster::LDNS::RR::SIG' );
+ can_ok( 'Zonemaster::LDNS::RR::SIG', qw(check_rd_count) );
+ is( $sig->check_rd_count(), '1' );
+};
+
subtest 'SRV' => sub {
my $srv = Zonemaster::LDNS::RR->new( '_nicname._tcp.se. 172800 IN SRV 0 0 43 whois.nic-se.se.' );
is( $srv->type, 'SRV' );