comparison mail_resolver.t @ 1494:1356e7374c57

Tests: added mail resolver tests for PTR with rn->waiting.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 29 Jul 2019 19:26:21 +0300
parents e4974af3fb12
children e1eb3432487b
comparison
equal deleted inserted replaced
1493:829467f8d696 1494:1356e7374c57
23 select STDERR; $| = 1; 23 select STDERR; $| = 1;
24 select STDOUT; $| = 1; 24 select STDOUT; $| = 1;
25 25
26 local $SIG{PIPE} = 'IGNORE'; 26 local $SIG{PIPE} = 'IGNORE';
27 27
28 my $t = Test::Nginx->new()->has(qw/mail smtp http rewrite/)->plan(8) 28 my $t = Test::Nginx->new()->has(qw/mail smtp http rewrite/)->plan(10)
29 ->write_file_expand('nginx.conf', <<'EOF'); 29 ->write_file_expand('nginx.conf', <<'EOF');
30 30
31 %%TEST_GLOBALS%% 31 %%TEST_GLOBALS%%
32 32
33 daemon off; 33 daemon off;
126 ############################################################################### 126 ###############################################################################
127 127
128 # PTR 128 # PTR
129 129
130 my $s = Test::Nginx::SMTP->new(); 130 my $s = Test::Nginx::SMTP->new();
131 my $s2 = Test::Nginx::SMTP->new();
131 $s->read(); 132 $s->read();
132 $s->send('EHLO example.com'); 133 $s->send('EHLO example.com');
133 $s->read(); 134 $s->read();
134 $s->send('MAIL FROM:<test@example.com> SIZE=100'); 135 $s->send('MAIL FROM:<test@example.com> SIZE=100');
135 $s->read(); 136 $s->read();
138 $s->ok('PTR'); 139 $s->ok('PTR');
139 140
140 $s->send('QUIT'); 141 $s->send('QUIT');
141 $s->read(); 142 $s->read();
142 143
144 $s2->read();
145 $s2->send('EHLO example.com');
146 $s2->ok('PTR waiting');
147
143 # Cached PTR prevents from querying bad ns on port 8983 148 # Cached PTR prevents from querying bad ns on port 8983
144 149
145 $s = Test::Nginx::SMTP->new(); 150 $s = Test::Nginx::SMTP->new();
146 $s->read(); 151 $s->read();
147 $s->send('EHLO example.com'); 152 $s->send('EHLO example.com');
171 $s->read(); 176 $s->read();
172 177
173 # PTR with zero length RDATA 178 # PTR with zero length RDATA
174 179
175 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028)); 180 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028));
181 $s2 = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028));
176 $s->read(); 182 $s->read();
177 $s->send('EHLO example.com'); 183 $s->send('EHLO example.com');
178 $s->read(); 184 $s->read();
179 $s->send('MAIL FROM:<test@example.com> SIZE=100'); 185 $s->send('MAIL FROM:<test@example.com> SIZE=100');
180 $s->read(); 186 $s->read();
182 $s->send('RCPT TO:<test@example.com>'); 188 $s->send('RCPT TO:<test@example.com>');
183 $s->check(qr/TEMPUNAVAIL/, 'PTR empty'); 189 $s->check(qr/TEMPUNAVAIL/, 'PTR empty');
184 190
185 $s->send('QUIT'); 191 $s->send('QUIT');
186 $s->read(); 192 $s->read();
193
194 # resolver timeout is set
195
196 $s2->read();
197 $s2->send('EHLO example.com');
198 $s2->ok('PTR empty waiting');
187 199
188 # CNAME 200 # CNAME
189 201
190 TODO: { 202 TODO: {
191 local $TODO = 'support for CNAME RR'; 203 local $TODO = 'support for CNAME RR';