1# Basic plugin tests 2 3use _GDT (); 4use Test::More tests => 28; 5 6my $neg_soa = 'example.com 900 SOA ns1.example.com hostmaster.example.com 1 7200 1800 259200 900'; 7 8my $pid = _GDT->test_spawn_daemon(); 9 10_GDT->test_dns( 11 qname => 'example.com', qtype => 'SOA', 12 answer => 'example.com 86400 SOA ns1.example.com hostmaster.example.com 1 7200 1800 259200 900', 13); 14 15_GDT->test_dns( 16 v4_only => 1, 17 qname => 'r.example.com', qtype => 'A', 18 answer => 'r.example.com 86400 A 127.0.0.1', 19); 20 21_GDT->test_dns( 22 v6_only => 1, 23 qname => 'r.example.com', qtype => 'A', 24 auth => $neg_soa, 25 addtl => 'r.example.com 86400 AAAA ::1', 26); 27 28_GDT->test_dns( 29 v6_only => 1, 30 qname => 'r.example.com', qtype => 'AAAA', 31 answer => 'r.example.com 86400 AAAA ::1', 32); 33 34_GDT->test_dns( 35 v4_only => 1, 36 qname => 'r.example.com', qtype => 'AAAA', 37 auth => $neg_soa, 38 addtl => 'r.example.com 86400 A 127.0.0.1', 39); 40 41_GDT->test_dns( 42 qname => 'n.example.com', qtype => 'A', 43 answer => 'n.example.com 86400 A 0.0.0.0', 44 addtl => 'n.example.com 86400 AAAA ::', 45); 46 47_GDT->test_dns( 48 qname => 'b41.example.com', qtype => 'A', 49 answer => 'b41.example.com 86400 A 192.0.2.41', 50); 51 52_GDT->test_dns( 53 qname => 'n-x.example.com', qtype => 'A', 54 answer => 'n-x.example.com 86400 A 0.0.0.0', 55 addtl => 'n-x.example.com 86400 AAAA ::', 56); 57 58_GDT->test_dns( 59 qname => 'b41.example.com', qtype => 'A', 60 answer => 'b41.example.com 86400 A 192.0.2.41', 61); 62 63_GDT->test_dns( 64 qname => 'n-x.example.com', qtype => 'AAAA', 65 answer => 'n-x.example.com 86400 AAAA ::', 66 addtl => 'n-x.example.com 86400 A 0.0.0.0', 67); 68 69_GDT->test_dns( 70 v4_only => 1, 71 qname => 'addtl.example.com', qtype => 'MX', 72 answer => 'addtl.example.com 86400 MX 0 r.example.com', 73 addtl => 'r.example.com 86400 A 127.0.0.1', 74); 75 76_GDT->test_dns( 77 v6_only => 1, 78 qname => 'addtl.example.com', qtype => 'MX', 79 answer => 'addtl.example.com 86400 MX 0 r.example.com', 80 addtl => 'r.example.com 86400 AAAA ::1', 81); 82 83_GDT->test_dns( 84 qname => 'f42.example.com', qtype => 'A', 85 answer => 'f42.example.com 86400 A 192.0.2.42', 86); 87 88_GDT->test_dns( 89 qname => 'example.com', qtype => 'NS', 90 answer => [ 91 'example.com 86400 NS ns1.example.com', 92 'example.com 86400 NS f42.example.com', 93 'example.com 86400 NS ns1.example.net', 94 ], 95 addtl => [ 96 'ns1.example.com 86400 A 192.0.2.1', 97 'f42.example.com 86400 A 192.0.2.42', 98 'ns1.example.net 86400 A 192.0.2.41', 99 ], 100); 101 102_GDT->test_dns( 103 qname => 'www.subz.example.com', qtype => 'A', 104 header => { aa => 0 }, 105 auth => [ 106 'subz.example.com 86400 NS ns1.subz.example.com', 107 ], 108 addtl => [ 109 'ns1.subz.example.com 86400 A 192.0.2.41', 110 ], 111); 112 113_GDT->test_dns( 114 qname => 'sfo1.example.com', qtype => 'A', 115 answer => 'sfo1.example.com 86400 A 192.0.2.140', 116); 117 118_GDT->test_dns( 119 qname => 'sfo2.example.com', qtype => 'A', 120 answer => 'sfo2.example.com 86400 A 192.0.2.150', 121); 122 123_GDT->test_dns( 124 qname => 'sfo3.example.com', qtype => 'A', 125 auth => $neg_soa, 126 addtl => 'sfo3.example.com 86400 AAAA 2001:DB8::DEAD', 127); 128 129_GDT->test_dns( 130 qname => 'sfo4.example.com', qtype => 'AAAA', 131 answer => 'sfo4.example.com 86400 AAAA 2001:DB8::B00', 132); 133 134_GDT->test_dns( 135 qname => 'sfo5.example.com', qtype => 'AAAA', 136 answer => 'sfo5.example.com 86399 AAAA 2001:DB8::AAA', 137 addtl => 'sfo5.example.com 86399 A 192.0.2.170', 138); 139 140_GDT->test_dns( 141 qname => 'mfo1.example.com', qtype => 'A', 142 answer => [ 143 'mfo1.example.com 86400 A 192.0.2.101', 144 'mfo1.example.com 86400 A 192.0.2.102', 145 'mfo1.example.com 86400 A 192.0.2.103', 146 ], 147 addtl => [ 148 'mfo1.example.com 86400 AAAA 2001:DB8::101', 149 'mfo1.example.com 86400 AAAA 2001:DB8::102', 150 ], 151); 152 153_GDT->test_dns( 154 qname => 'mfo1.example.com', qtype => 'AAAA', 155 answer => [ 156 'mfo1.example.com 86400 AAAA 2001:DB8::101', 157 'mfo1.example.com 86400 AAAA 2001:DB8::102', 158 ], 159 addtl => [ 160 'mfo1.example.com 86400 A 192.0.2.101', 161 'mfo1.example.com 86400 A 192.0.2.102', 162 'mfo1.example.com 86400 A 192.0.2.103', 163 ], 164); 165 166_GDT->test_dns( 167 qname => 'mfo2.example.com', qtype => 'A', 168 answer => [ 169 'mfo2.example.com 86400 A 192.0.2.111', 170 'mfo2.example.com 86400 A 192.0.2.112', 171 ], 172); 173 174_GDT->test_dns( 175 qname => 'mfo2.example.com', qtype => 'AAAA', 176 auth => $neg_soa, 177 addtl => [ 178 'mfo2.example.com 86400 A 192.0.2.111', 179 'mfo2.example.com 86400 A 192.0.2.112', 180 ], 181); 182 183_GDT->test_dns( 184 qname => 'mfo3.example.com', qtype => 'AAAA', 185 answer => [ 186 'mfo3.example.com 86400 AAAA 2001:DB8::Deca:fBad', 187 'mfo3.example.com 86400 AAAA 2001:DB8::AD15:eA5e', 188 ], 189); 190 191_GDT->test_dns( 192 qname => 'adyn.example.com', qtype => 'A', 193 answer => 'adyn.example.com 86400 A 192.0.2.41', 194); 195 196_GDT->test_kill_daemon($pid); 197