Ignore:
Timestamp:
01/07/26 13:31:45 (3 days ago)
Author:
Kris Deugau
Message:

/branches/cname-collision

Drop evolved-into-"it seemed like a good idea at the time" indentation

File:
1 edited

Legend:

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

    r956 r963  
    1717my $newval;
    1818
     19
    1920## Domain tests
    2021subtest 'Domain tests' => sub {
    2122
    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 DB
    29     ($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  };
    3536
    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  };
    4647
    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  };
    5758
    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  };
    7071
    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  };
    8182
    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  };
    9394
    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  };
    104105
    105106}; # domain tests
    106107
    107108
    108 ## Reverse zone
     109## Reverse zone tests
    109110subtest 'Reverse zone tests' => sub {
    110111
    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  };
    123124
    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  };
    135136
    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  };
    147148
    148149}; # reverse zone tests
    149150
     151
    150152done_testing();
Note: See TracChangeset for help on using the changeset viewer.