Ignore:
Timestamp:
02/20/26 13:33:21 (19 hours ago)
Author:
Kris Deugau
Message:

/branches/cname-collision

Remove some excessive docucomments from test file, refine/add a few others
Clean up test calls for consistency and improved clarity on fail
See #88

File:
1 edited

Legend:

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

    r1042 r1043  
    3030    $newval = 'fredshosting.example.net';
    3131    ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
    32     ok( $code eq 'OK', "addRec() claimed succeess" );
    33     if ($code eq 'OK') {
    34       # crosscheck in the DB
    35       ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");
    36       ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );
    37     } else {
    38       print "not ok: $msg";
    39     }
    40   };
    41 
    42   subtest 'CNAME add - existing/colliding non-CNAME' => sub {
    43     $newname = 'mx1.example.com';
    44     ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
    45     ok( $code eq 'FAIL', "addRec() claimed failure" );
    46     if ($code eq 'FAIL') {
    47       ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");
    48       ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );
    49       like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
    50     }
    51   };
    52 
    53   subtest 'CNAME add - existing/colliding CNAME' => sub {
    54     $newname = 'www.example.com';
    55     ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
    56     ok( $code eq 'FAIL', "addRec() claimed failure" );
    57     if ($code eq 'FAIL') {
    58       ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type = 5");
    59       ok( $rcount == 1, " ... [$rcount] CNAME already exists" );
    60       like( $msg, qr/already a CNAME present/, " ... returned matching error" );
    61     }
    62   };
    63 
    64   subtest 'CNAME update - non-CNAME to CNAME, non-colliding' => sub {
    65     $newname = 'smtp.example.com';
    66     $newval = 'example.com';
    67     ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);
    68     ok( $code eq 'OK', "updateRec() claimed success" );
     32    cmp_ok( $code, 'eq', 'OK', "addRec() claimed succeess" );
    6933    if ($code eq 'OK') {
    7034      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");
     
    7539  };
    7640
    77   subtest 'CNAME update - non-CNAME to CNAME, colliding' => sub {
     41  subtest 'CNAME add - existing/colliding non-CNAME' => sub {
    7842    $newname = 'mx1.example.com';
    79     ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);
    80     ok( $code eq 'FAIL', "updateRec() claimed failure" );
     43    ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
     44    cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    8145    if ($code eq 'FAIL') {
    8246      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");
     
    8448      like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
    8549    }
    86   };
    87 
    88   subtest 'CNAME update - name to non-colliding name' => sub {
    89     $newname = 'imap.example.com';
    90     ($code, $msg) = $dnsdb->updateRec('n', 'n', 37, 1, \$newname, \$rectype, \$newval, 900);
    91     ok( $code eq 'OK', "updateRec() claimed success" );
     50  };
     51
     52  subtest 'CNAME add - existing/colliding CNAME' => sub {
     53    $newname = 'www.example.com';
     54    ($code, $msg) = $dnsdb->addRec('n', 'n', 1, \$newname, \$rectype, \$newval, 900);
     55    cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
     56    if ($code eq 'FAIL') {
     57      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type = 5");
     58      ok( $rcount == 1, " ... [$rcount] CNAME already exists" );
     59      like( $msg, qr/already a CNAME present/, " ... returned matching error" );
     60    }
     61  };
     62
     63  subtest 'CNAME update - non-CNAME to CNAME, non-colliding' => sub {
     64    $newname = 'smtp.example.com';
     65    $newval = 'example.com';
     66    ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);
     67    cmp_ok( $code, 'eq', 'OK', "updateRec() claimed success" );
    9268    if ($code eq 'OK') {
    9369      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");
     
    9874  };
    9975
     76  subtest 'CNAME update - non-CNAME to CNAME, colliding' => sub {
     77    $newname = 'mx1.example.com';
     78    ($code, $msg) = $dnsdb->updateRec('n', 'n', 39, 1, \$newname, \$rectype, \$newval, 900);
     79    cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
     80    if ($code eq 'FAIL') {
     81      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");
     82      ok( $rcount == 2, " ... [$rcount] record(s) with $newname already exist" );
     83      like( $msg, qr/One or more non-CNAME records/, " ... returned matching error" );
     84    }
     85  };
     86
     87  subtest 'CNAME update - name to non-colliding name' => sub {
     88    $newname = 'imap.example.com';
     89    ($code, $msg) = $dnsdb->updateRec('n', 'n', 37, 1, \$newname, \$rectype, \$newval, 900);
     90    cmp_ok( $code, 'eq', 'OK', "updateRec() claimed success" );
     91    if ($code eq 'OK') {
     92      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname'");
     93      ok( $rcount == 1, " ... [$rcount] yep, hostname only occurs once" );
     94    } else {
     95      print "not ok: $msg";
     96    }
     97  };
     98
    10099  subtest 'CNAME update - name to colliding name' => sub {
    101100    $newname = 'mx1.example.com';
    102101    ($code, $msg) = $dnsdb->updateRec('n', 'n', 41, 1, \$newname, \$rectype, \$newval, 900);
    103     ok( $code eq 'FAIL', "updateRec() claimed failure" );
     102    cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    104103    if ($code eq 'FAIL') {
    105104      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 1 AND host = '$newname' AND type <> 5");
     
    119118    $newname = '12.8-29.2.168.192.in-addr.arpa';
    120119    ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
    121     ok( $code eq 'OK', "addRec() claimed succeess" );
     120    cmp_ok( $code, 'eq', 'OK', "addRec() claimed succeess" );
    122121    if ($code eq 'OK') {
    123122      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'");
     
    132131    $newname = '14.8-29.2.168.192.in-addr.arpa';
    133132    ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
    134     ok( $code eq 'FAIL', "addRec() claimed failure" );
     133    cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    135134    if ($code eq 'FAIL') {
    136135      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5");
     
    144143    $newname = '13.8-29.2.168.192.in-addr.arpa';
    145144    ($code, $msg) = $dnsdb->addRec('n', 'y', 1, \$newname, \$rectype, \$newval, 900);
    146     ok( $code eq 'FAIL', "addRec() claimed failure" );
     145    cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    147146    if ($code eq 'FAIL') {
    148147      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type = 5");
     
    156155    $newname = '15-29.arpa.example.net';
    157156    ($code, $msg) = $dnsdb->updateRec('n', 'y', 43, 1, \$newname, \$rectype, \$newval, 900);
    158     ok( $code eq 'OK', "updateRec() claimed success" );
     157    cmp_ok( $code, 'eq', 'OK', "updateRec() claimed success" );
    159158    if ($code eq 'OK') {
    160159      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'");
     
    169168    $newname = 'arpa14.rev.example.net';
    170169    ($code, $msg) = $dnsdb->updateRec('n', 'y', 42, 1, \$newname, \$rectype, \$newval, 900);
    171     ok( $code eq 'FAIL', "updateRec() claimed failure updating revzone record type to CNAME" );
     170    cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure updating revzone record type to CNAME" );
    172171    if ($code eq 'FAIL') {
    173172      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5");
     
    180179    $newval = '192.168.2.11';
    181180    ($code, $msg) = $dnsdb->updateRec('n', 'y', 34, 1, \$newname, \$rectype, \$newval, 900);
    182     ok( $code eq 'OK', "updateRec() claimed success updating revzone CNAME \"hostname\" (non-colliding)" );
     181    cmp_ok( $code, 'eq', 'OK', "updateRec() claimed success updating revzone CNAME \"hostname\" (non-colliding)" );
    183182    if ($code eq 'OK') {
    184183      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval'");
     
    192191    $newval = '192.168.2.17';
    193192    ($code, $msg) = $dnsdb->updateRec('n', 'y', 46, 1, \$newname, \$rectype, \$newval, 900);
    194     ok( $code eq 'FAIL', "updateRec() claimed failure" );
     193    cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    195194    if ($code eq 'FAIL') {
    196195      ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE rdns_id = 1 AND val = '$newval' AND type <> 5");
     
    206205subtest 'Record expiry/valid-after' => sub {
    207206
    208   ## Add new CNAME
     207  ## Add new CNAME with no timestamp
    209208  subtest 'CNAME add - nonexpiring' => sub {
    210209    $newval = 'target.example.com';
     
    212211      $newname = 'expired1.expiry1.test';
    213212      ($code, $msg) = $dnsdb->addRec('n', 'n', 4, \$newname, \$rectype, \$newval, 900);
    214       ok( $code eq 'FAIL', "addRec() claimed failure" );
     213      cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    215214      if ($code eq 'FAIL') {
    216215        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 4 AND host = '$newname'");
     
    223222      $newname = 'expired2.expiry1.test';
    224223      ($code, $msg) = $dnsdb->addRec('n', 'n', 4, \$newname, \$rectype, \$newval, 900);
    225       ok( $code eq 'FAIL', "addRec() claimed failure" );
     224      cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    226225      if ($code eq 'FAIL') {
    227226        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 4 AND host = '$newname' AND type <> 5 AND stampactive = 't'");
     
    234233      $newname = 'active-after1.expiry1.test';
    235234      ($code, $msg) = $dnsdb->addRec('n', 'n', 4, \$newname, \$rectype, \$newval, 900);
    236       ok( $code eq 'FAIL', "addRec() claimed success with warning" );
     235      cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed success with warning" );
    237236      if ($code eq 'FAIL') {
    238237        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 4 AND host = '$newname'");
     
    244243      $newname = 'active-after2.expiry1.test';
    245244      ($code, $msg) = $dnsdb->addRec('n', 'n', 4, \$newname, \$rectype, \$newval, 900);
    246       ok( $code eq 'FAIL', "addRec() claimed failure" );
     245      cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    247246      if ($code eq 'FAIL') {
    248247        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 4 AND host = '$newname' AND type <> 5");
     
    253252  }; # add non-timestamp CNAME
    254253
     254  ## Add expiring CNAME
    255255  subtest 'CNAME add - expires soon' => sub {
    256256    my @ltime = localtime(time + 86400 * 3);
     
    267267      }
    268268    };
    269     subtest 'collision with expiring record' => sub {
     269    subtest 'collision with record with pending expiry' => sub {
    270270      $newname = 'expires-at2.expiry2.test';
    271271      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    272       ok( $code eq 'FAIL', "addRec() claimed failure");
     272      cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure");
    273273      if ($code eq 'FAIL') {
    274274        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname' AND type <> 5");
     
    280280      $newname = 'expires-at3.expiry2.test';
    281281      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    282       ok( $code eq 'OK', "addRec() claimed success" );
     282      cmp_ok( $code, 'eq', 'OK', "addRec() claimed success" );
    283283      if ($code eq 'OK') {
    284         # crosscheck in the DB
    285284        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname'");
    286285        ok( $rcount == 2, " ... [$rcount] correct number of records for $newname" );
     
    297296      $newname = 'expires-at4.expiry2.test';
    298297      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    299       ok( $code eq 'WARN', "addRec() claimed success with warning" );
     298      cmp_ok( $code, 'eq', 'WARN', "addRec() claimed success with warning" );
    300299      if ($code eq 'WARN') {
    301300        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname'");
     
    314313      $newname = 'expires-at5.expiry2.test';
    315314      ($code, $msg) = $dnsdb->addRec('n', 'n', 5, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    316       cmp_ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
    317       if ($code eq 'FAIL') {
    318         # crosscheck in the DB
     315      ok( $code, 'eq', 'FAIL', "addRec() claimed failure" );
     316      if ($code eq 'FAIL') {
    319317        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 5 AND host = '$newname'");
    320318        ok( $rcount == 1, " ... [$rcount] correct number of records for $newname" );
     
    324322  }; # add expiring CNAME
    325323
     324  ## Add valid-after CNAME
    326325  subtest 'CNAME add - valid after' => sub {
    327326    my @ltime = localtime(time + 86400 * 3);
     
    394393      $newname = 'nostamp1a.expiry3.test';
    395394      ($code, $msg) = $dnsdb->updateRec('n', 'n', 79, 6, \$newname, \$rectype, \$newval, 900);
    396       ok( $code eq 'FAIL', "updateRec() claimed failure" );
     395      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    397396      if ($code eq 'FAIL') {
    398397        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    404403      $newname = 'nostamp2a.expiry3.test';
    405404      ($code, $msg) = $dnsdb->updateRec('n', 'n', 80, 6, \$newname, \$rectype, \$newval, 900);
    406       ok( $code eq 'FAIL', "updateRec() claimed failure" );
     405      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    407406      if ($code eq 'FAIL') {
    408407        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    414413      $newname = 'nostamp3a.expiry3.test';
    415414      ($code, $msg) = $dnsdb->updateRec('n', 'n', 81, 6, \$newname, \$rectype, \$newval, 900);
    416       ok( $code eq 'FAIL', "updateRec() claimed failure" );
     415      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    417416      if ($code eq 'FAIL') {
    418417        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    424423      $newname = 'nostamp4a.expiry3.test';
    425424      ($code, $msg) = $dnsdb->updateRec('n', 'n', 82, 6, \$newname, \$rectype, \$newval, 900);
    426       ok( $code eq 'FAIL', "updateRec() claimed failure" );
     425      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    427426      if ($code eq 'FAIL') {
    428427        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    450449      $newname = 'expires2a.expiry3.test';
    451450      ($code, $msg) = $dnsdb->updateRec('n', 'n', 90, 6, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    452       ok( $code eq 'FAIL', "updateRec() claimed failure");
     451      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure");
    453452      if ($code eq 'FAIL') {
    454453        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname' AND type <> 5");
     
    470469      $newname = 'expires4a.expiry3.test';
    471470      ($code, $msg) = $dnsdb->updateRec('n', 'n', 92, 6, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    472       ok( $code eq 'WARN', "updateRec() claimed success with warning" );
     471      cmp_ok( $code, 'eq', 'WARN', "updateRec() claimed success with warning" );
    473472      if ($code eq 'WARN') {
    474473        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    497496      $newname = 'expires6a.expiry3.test';
    498497      ($code, $msg) = $dnsdb->updateRec('n', 'n', 94, 6, \$newname, \$rectype, \$newval, 900, undef, 't', $expirystamp);
    499       ok( $code eq 'OK', "updateRec() claimed success" );
     498      cmp_ok( $code, 'eq', 'OK', "updateRec() claimed success" );
    500499      if ($code eq 'OK') {
    501500        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    520519      $newname = 'validafter1a.expiry3.test';
    521520      ($code, $msg) = $dnsdb->updateRec('n', 'n', 100, 6, \$newname, \$rectype, \$newval, 900, undef, 'f', $expirystamp);
    522       ok( $code eq 'FAIL', "updateRec() claimed failure" );
     521      cmp_ok( $code, 'eq', 'FAIL', "updateRec() claimed failure" );
    523522      if ($code eq 'FAIL') {
    524523        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 6 AND host = '$newname'");
     
    594593      $newval = '192.168.2.1';
    595594      ($code, $msg) = $dnsdb->addRec('n', 'n', 7, \$newname, \$rectype, \$newval, 900);
    596       ok( $code eq 'OK', "addRec() claimed succeess" );
     595      cmp_ok( $code, 'eq', 'OK', "addRec() claimed succeess" );
    597596      if ($code eq 'OK') {
    598597        ($rcount) = $dbh->selectrow_array("SELECT count(*) FROM records WHERE domain_id = 7 AND host = '$newname'");
Note: See TracChangeset for help on using the changeset viewer.