comparison stream_udp_proxy.t @ 1574:42e37e0434d5

Tests: stream udp tests with zero-length payload (ticket #1982).
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 10 Jun 2020 15:35:20 +0300
parents c4f58dfe8207
children f3ba4c74de31
comparison
equal deleted inserted replaced
1573:d7e83ce613c2 1574:42e37e0434d5
20 ############################################################################### 20 ###############################################################################
21 21
22 select STDERR; $| = 1; 22 select STDERR; $| = 1;
23 select STDOUT; $| = 1; 23 select STDOUT; $| = 1;
24 24
25 my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(4) 25 my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(8)
26 ->write_file_expand('nginx.conf', <<'EOF'); 26 ->write_file_expand('nginx.conf', <<'EOF');
27 27
28 %%TEST_GLOBALS%% 28 %%TEST_GLOBALS%%
29 29
30 daemon off; 30 daemon off;
73 is($s->io('2', read => 2), '12', 'proxy responses 2'); 73 is($s->io('2', read => 2), '12', 'proxy responses 2');
74 74
75 $s = dgram('127.0.0.1:' . port(8983)); 75 $s = dgram('127.0.0.1:' . port(8983));
76 is($s->io('3', read => 3), '123', 'proxy responses default'); 76 is($s->io('3', read => 3), '123', 'proxy responses default');
77 77
78 # zero-length payload
79
80 TODO: {
81 local $TODO = 'not yet' unless $t->has_version('1.19.1');
82
83 $s = dgram('127.0.0.1:' . port(8982));
84 $s->write('');
85 is($s->read(), 'zero', 'upstream read zero bytes');
86 is($s->read(), '', 'upstream sent zero bytes');
87
88 $s->write('');
89 is($s->read(), 'zero', 'upstream read zero bytes again');
90 is($s->read(), '', 'upstream sent zero bytes again');
91
92 }
93
78 ############################################################################### 94 ###############################################################################
79 95
80 sub udp_daemon { 96 sub udp_daemon {
81 my ($port, $t) = @_; 97 my ($port, $t) = @_;
82 98
92 open my $fh, '>', $t->testdir() . '/' . port(8981); 108 open my $fh, '>', $t->testdir() . '/' . port(8981);
93 close $fh; 109 close $fh;
94 110
95 while (1) { 111 while (1) {
96 $server->recv(my $buffer, 65536); 112 $server->recv(my $buffer, 65536);
97 $server->send($_) for (1 .. $buffer); 113
114 if (length($buffer) > 0) {
115 $server->send($_) for (1 .. $buffer);
116
117 } else {
118 $server->send('zero');
119 select undef, undef, undef, 0.2;
120 $server->send('');
121 }
98 } 122 }
99 } 123 }
100 124
101 ############################################################################### 125 ###############################################################################