Changeset 963 for branches/cname-collision/t
- Timestamp:
- 01/07/26 13:31:45 (3 days ago)
- File:
-
- 1 edited
-
branches/cname-collision/t/cname.t (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/cname-collision/t/cname.t
r956 r963 17 17 my $newval; 18 18 19 19 20 ## Domain tests 20 21 subtest 'Domain tests' => sub { 21 22 22 subtest 'CNAME add - new name' => sub {23 $newname = 'newname.example.com';24 $newval = 'fredshosting.example.net';25 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);26 ok( $code eq 'OK', "addRec() claimed succeess" );27 if ($code eq 'OK') {28 # crosscheck in the DB29 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");30 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );31 } else {32 print "not ok: $msg";33 }34 };23 subtest 'CNAME add - new name' => sub { 24 $newname = 'newname.example.com'; 25 $newval = 'fredshosting.example.net'; 26 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900); 27 ok( $code eq 'OK', "addRec() claimed succeess" ); 28 if ($code eq 'OK') { 29 # crosscheck in the DB 30 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'"); 31 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" ); 32 } else { 33 print "not ok: $msg"; 34 } 35 }; 35 36 36 subtest 'CNAME add - existing/colliding non-CNAME' => sub {37 $newname = 'mx1.example.com';38 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);39 ok( $code eq 'FAIL', "addRec() claimed failure" );40 if ($code eq 'FAIL') {41 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");42 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );43 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );44 }45 };37 subtest 'CNAME add - existing/colliding non-CNAME' => sub { 38 $newname = 'mx1.example.com'; 39 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900); 40 ok( $code eq 'FAIL', "addRec() claimed failure" ); 41 if ($code eq 'FAIL') { 42 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5"); 43 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" ); 44 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" ); 45 } 46 }; 46 47 47 subtest 'CNAME add - existing/colliding CNAME' => sub {48 $newname = 'www.example.com';49 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);50 ok( $code eq 'FAIL', "addRec() claimed failure" );51 if ($code eq 'FAIL') {52 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type = 5");53 ok( $rcount == 1, " ... [$rcount] CNAME already exists" );54 like( $msg, qr/already a CNAME present/, " ... returned matching error" );55 }56 };48 subtest 'CNAME add - existing/colliding CNAME' => sub { 49 $newname = 'www.example.com'; 50 ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900); 51 ok( $code eq 'FAIL', "addRec() claimed failure" ); 52 if ($code eq 'FAIL') { 53 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type = 5"); 54 ok( $rcount == 1, " ... [$rcount] CNAME already exists" ); 55 like( $msg, qr/already a CNAME present/, " ... returned matching error" ); 56 } 57 }; 57 58 58 subtest 'CNAME update - non-CNAME to CNAME, non-colliding' => sub {59 $newname = 'smtp.example.com';60 $newval = 'example.com';61 ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);62 ok( $code eq 'OK', "updateRec() claimed success" );63 if ($code eq 'OK') {64 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");65 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );66 } else {67 print "not ok: $msg";68 }69 };59 subtest 'CNAME update - non-CNAME to CNAME, non-colliding' => sub { 60 $newname = 'smtp.example.com'; 61 $newval = 'example.com'; 62 ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900); 63 ok( $code eq 'OK', "updateRec() claimed success" ); 64 if ($code eq 'OK') { 65 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'"); 66 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" ); 67 } else { 68 print "not ok: $msg"; 69 } 70 }; 70 71 71 subtest 'CNAME update - non-CNAME to CNAME, colliding' => sub {72 $newname = 'mx1.example.com';73 ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);74 ok( $code eq 'FAIL', "updateRec() claimed failure" );75 if ($code eq 'FAIL') {76 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");77 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );78 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );79 }80 };72 subtest 'CNAME update - non-CNAME to CNAME, colliding' => sub { 73 $newname = 'mx1.example.com'; 74 ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900); 75 ok( $code eq 'FAIL', "updateRec() claimed failure" ); 76 if ($code eq 'FAIL') { 77 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5"); 78 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" ); 79 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" ); 80 } 81 }; 81 82 82 subtest 'CNAME update - name to non-colliding name' => sub {83 $newname = 'imap.example.com';84 ($code, $msg) = $dnsdb->updateRec('n', 'n', 37, 1, \$newname, \$rectype, \$newval, 900);85 ok( $code eq 'OK', "updateRec() claimed success" );86 if ($code eq 'OK') {87 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");88 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );89 } else {90 print "not ok: $msg";91 }92 };83 subtest 'CNAME update - name to non-colliding name' => sub { 84 $newname = 'imap.example.com'; 85 ($code, $msg) = $dnsdb->updateRec('n', 'n', 37, 1, \$newname, \$rectype, \$newval, 900); 86 ok( $code eq 'OK', "updateRec() claimed success" ); 87 if ($code eq 'OK') { 88 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'"); 89 ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" ); 90 } else { 91 print "not ok: $msg"; 92 } 93 }; 93 94 94 subtest 'CNAME update - name to colliding name' => sub {95 $newname = 'mx1.example.com';96 ($code, $msg) = $dnsdb->updateRec('n', 'n', 41, 1, \$newname, \$rectype, \$newval, 900);97 ok( $code eq 'FAIL', "updateRec() claimed failure" );98 if ($code eq 'FAIL') {99 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");100 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );101 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );102 }103 };95 subtest 'CNAME update - name to colliding name' => sub { 96 $newname = 'mx1.example.com'; 97 ($code, $msg) = $dnsdb->updateRec('n', 'n', 41, 1, \$newname, \$rectype, \$newval, 900); 98 ok( $code eq 'FAIL', "updateRec() claimed failure" ); 99 if ($code eq 'FAIL') { 100 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5"); 101 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" ); 102 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" ); 103 } 104 }; 104 105 105 106 }; # domain tests 106 107 107 108 108 ## Reverse zone 109 ## Reverse zone tests 109 110 subtest 'Reverse zone tests' => sub { 110 111 111 subtest 'CNAME add - new reverse name' => sub {112 $newval = '192.168.2.12';113 $newname = '12.8-29.2.168.192.in-addr.arpa';114 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);115 ok( $code eq 'OK', "addRec() claimed succeess" );116 if ($code eq 'OK') {117 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'");118 ok( $rcount == 1, " ... [$rcount] yep, IP only occurs once" );119 } else {120 print "not ok: $msg\n";121 }122 };112 subtest 'CNAME add - new reverse name' => sub { 113 $newval = '192.168.2.12'; 114 $newname = '12.8-29.2.168.192.in-addr.arpa'; 115 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900); 116 ok( $code eq 'OK', "addRec() claimed succeess" ); 117 if ($code eq 'OK') { 118 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'"); 119 ok( $rcount == 1, " ... [$rcount] yep, IP only occurs once" ); 120 } else { 121 print "not ok: $msg\n"; 122 } 123 }; 123 124 124 subtest 'CNAME add - existing/colliding non-CNAME' => sub {125 $newval = '192.168.2.14';126 $newname = '14.8-29.2.168.192.in-addr.arpa';127 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);128 ok( $code eq 'FAIL', "addRec() claimed failure" );129 if ($code eq 'FAIL') {130 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5");131 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );132 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );133 }134 };125 subtest 'CNAME add - existing/colliding non-CNAME' => sub { 126 $newval = '192.168.2.14'; 127 $newname = '14.8-29.2.168.192.in-addr.arpa'; 128 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900); 129 ok( $code eq 'FAIL', "addRec() claimed failure" ); 130 if ($code eq 'FAIL') { 131 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5"); 132 ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" ); 133 like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" ); 134 } 135 }; 135 136 136 subtest 'CNAME add - existing/colliding CNAME' => sub {137 $newval = '192.168.2.13';138 $newname = '13.8-29.2.168.192.in-addr.arpa';139 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);140 ok( $code eq 'FAIL', "addRec() claimed failure" );141 if ($code eq 'FAIL') {142 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type = 5");143 ok( $rcount == 1, " ... [$rcount] CNAME already exists" );144 like( $msg, qr/already a CNAME present/, " ... returned matching error" );145 }146 };137 subtest 'CNAME add - existing/colliding CNAME' => sub { 138 $newval = '192.168.2.13'; 139 $newname = '13.8-29.2.168.192.in-addr.arpa'; 140 ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900); 141 ok( $code eq 'FAIL', "addRec() claimed failure" ); 142 if ($code eq 'FAIL') { 143 ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type = 5"); 144 ok( $rcount == 1, " ... [$rcount] CNAME already exists" ); 145 like( $msg, qr/already a CNAME present/, " ... returned matching error" ); 146 } 147 }; 147 148 148 149 }; # reverse zone tests 149 150 151 150 152 done_testing();
Note:
See TracChangeset
for help on using the changeset viewer.
![[ DNS Administrator ]](/fx/dnsadmin-logo.png)