Changeset 951


Ignore:
Timestamp:
12/24/25 13:45:17 (5 hours ago)
Author:
Kris Deugau
Message:

/branches/cname-collision

Add CNAME record-add tests for reverse zones. See #88, #72

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/cname-collision/t/cname.t

    r950 r951  
    11# -*- Perl -*-
    22# Tests for CNAME records
     3# Note that not all possible cases are caught!
     4# Template records mean not all published records are natively present in the DB
    35
    46use Test::More;
     
    4244};
    4345
     46
     47## Reverse zone
     48
     49subtest 'CNAME add - new reverse name' => sub {
     50  $newval = '192.168.2.12';
     51  $newname = '12.8-29.2.168.192.in-addr.arpa';
     52  ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
     53  ok( $code eq 'OK', "addRec() claimed succeess adding reverse zone CNAME" );
     54  if ($code eq 'OK') {
     55    ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'");
     56    ok( $rcount == 1, " ... [$rcount] yep, IP only occurs once" );
     57  } else {
     58    print "not ok: $msg\n";
     59  }
     60};
     61
     62subtest 'CNAME add - existing/colliding non-CNAME' => sub {
     63  $newval = '192.168.2.14';
     64  $newname = '14.8-29.2.168.192.in-addr.arpa';
     65  ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
     66  ok( $code eq 'FAIL', "addRec() claimed failure adding colliding reverse zone CNAME" );
     67  if ($code eq 'FAIL') {
     68    ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5");
     69    ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );
     70    like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
     71  }
     72};
     73
     74subtest 'CNAME add - existing/colliding CNAME' => sub {
     75  $newval = '192.168.2.13';
     76    $newname = '13.8-29.2.168.192.in-addr.arpa';
     77  ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
     78  ok( $code eq 'FAIL', "addRec() claimed failure adding duplicate reverse zone CNAME" );
     79  if ($code eq 'FAIL') {
     80    ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type = 5");
     81    ok( $rcount == 1, " ... [$rcount] CNAME already exists" );
     82    like( $msg, qr/already a CNAME present/, " ... returned matching error" );
     83  }
     84};
     85
    4486done_testing();
Note: See TracChangeset for help on using the changeset viewer.