|
Packit |
e6c8bb |
# $Id: 07-rrsort.t 1381 2015-08-25 07:36:09Z willem $ -*-perl-*-
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
use Test::More;
|
|
Packit |
e6c8bb |
use strict;
|
|
Packit |
e6c8bb |
use Net::DNS qw(rrsort);
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
plan tests => 22;
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $rr1=Net::DNS::RR->new("example.com. 600 IN SRV 0 0 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr1),"Net::DNS::RR::SRV","SRV RR1 created");
|
|
Packit |
e6c8bb |
my $rr2=Net::DNS::RR->new("example.com. 600 IN SRV 1 0 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr2),"Net::DNS::RR::SRV","SRV RR2 created");
|
|
Packit |
e6c8bb |
my $rr3=Net::DNS::RR->new("example.com. 600 IN SRV 2 0 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr3),"Net::DNS::RR::SRV","SRV RR3 created");
|
|
Packit |
e6c8bb |
my $rr4=Net::DNS::RR->new("example.com. 600 IN SRV 3 0 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr4),"Net::DNS::RR::SRV","SRV RR4 created");
|
|
Packit |
e6c8bb |
my $rr5=Net::DNS::RR->new("example.com. 600 IN SRV 3 1 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr5),"Net::DNS::RR::SRV","SRV RR5 created");
|
|
Packit |
e6c8bb |
my $rr6=Net::DNS::RR->new("example.com. 600 IN SRV 3 2 5060 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr6),"Net::DNS::RR::SRV","SRV RR6 created");
|
|
Packit |
e6c8bb |
my $rr7=Net::DNS::RR->new("example.com. 600 IN SRV 1 3 5070 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr7),"Net::DNS::RR::SRV","SRV RR7 created");
|
|
Packit |
e6c8bb |
my $rr8=Net::DNS::RR->new("example.com. 600 IN SRV 3 3 5070 A.example.com.");
|
|
Packit |
e6c8bb |
is(ref($rr8),"Net::DNS::RR::SRV","SRV RR8 created");
|
|
Packit |
e6c8bb |
my $rr9=Net::DNS::RR->new("example.com. 600 IN A 192.168.0.1");
|
|
Packit |
e6c8bb |
is(ref($rr9),"Net::DNS::RR::A","A RR9 created");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @rrarray=($rr1, $rr2, $rr3, $rr4, $rr5, $rr6, $rr7, $rr8, $rr9);
|
|
Packit |
e6c8bb |
my @expectedrdata=($rr1, $rr2, $rr3, $rr7, $rr4, $rr5, $rr6, $rr8);
|
|
Packit |
e6c8bb |
my @expectedpriority=($rr1, $rr7, $rr2, $rr3, $rr8, $rr6, $rr5, $rr4);
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is (scalar rrsort("SRV"),0,"rrsort returns properly with undefined arguments");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is (scalar rrsort("SRV",@rrarray),8,"rrsort returns properly with undefined attribute (1)");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is (scalar rrsort("SRV",,@rrarray),8,"rrsort returns properly with undefined attribute (2)");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is (scalar rrsort("SRV","",@rrarray),8,"rrsort returns properly with undefined attribute (3)");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @prioritysorted= rrsort("SRV","priority",@rrarray);
|
|
Packit |
e6c8bb |
my @defaultsorted= rrsort("SRV",@rrarray);
|
|
Packit |
e6c8bb |
my @portsorted= rrsort("SRV","port",@rrarray);
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @foosorted= rrsort("SRV","foo",@rrarray);
|
|
Packit |
e6c8bb |
is (scalar @foosorted,8,"rrsort returns properly with undefined attribute (4)");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
is (scalar @prioritysorted,8,"rrsort correctly maintains RRs test 1");
|
|
Packit |
e6c8bb |
is (scalar @portsorted,8,"rrsort correctly maintains RRs test 2");
|
|
Packit |
e6c8bb |
is (scalar rrsort("A","priority",@rrarray),1,"rrsort correctly maintains RRs test 3");
|
|
Packit |
e6c8bb |
is (scalar rrsort("MX","priority",@rrarray),0,"rrsort correctly maintains RRs test 4");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
ok (eq_array(\@expectedpriority, \@prioritysorted), "Sorting on SRV priority works");
|
|
Packit |
e6c8bb |
ok (eq_array(\@expectedpriority, \@defaultsorted), "Default SRV sort works");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
#
|
|
Packit |
e6c8bb |
# Test with MX RRs.
|
|
Packit |
e6c8bb |
#
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $mxrr1=Net::DNS::RR->new("example.com. 600 IN MX 10 mx1.example.com");
|
|
Packit |
e6c8bb |
my $mxrr2=Net::DNS::RR->new("example.com. 600 IN MX 6 mx2.example.com");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $mxrr3=Net::DNS::RR->new("example.com. 600 IN MX 66 mx3.example.com");
|
|
Packit |
e6c8bb |
my $mxrr4=Net::DNS::RR->new("example.com. 600 IN RT 6 rt1.example.com");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @mxrrarray=($mxrr1, $mxrr2, $mxrr3, $mxrr4);
|
|
Packit |
e6c8bb |
my @expectedmxarray=($mxrr2,$mxrr1,$mxrr3);
|
|
Packit |
e6c8bb |
my @sortedmxarray=rrsort("MX",@mxrrarray);
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
ok (eq_array(\@expectedmxarray,\@sortedmxarray),"MX sorting");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my $nsrr1=Net::DNS::RR->new("example.com. 600 IN NS ns2.example.com");
|
|
Packit |
e6c8bb |
my $nsrr2=Net::DNS::RR->new("example.com. 600 IN NS ns4.example.com");
|
|
Packit |
e6c8bb |
my $nsrr3=Net::DNS::RR->new("example.com. 600 IN NS ns1.example.com");
|
|
Packit |
e6c8bb |
my $nsrr4=Net::DNS::RR->new("example.com. 600 IN RT 6 rt1.example.com");
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
my @nsrrarray=($nsrr1, $nsrr2, $nsrr3, $nsrr4);
|
|
Packit |
e6c8bb |
my @expectednsarray=($nsrr3,$nsrr1,$nsrr2);
|
|
Packit |
e6c8bb |
my @sortednsarray=rrsort("NS",@nsrrarray);
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
|
|
Packit |
e6c8bb |
ok (eq_array(\@expectednsarray,\@sortednsarray),"NS sorting");
|