Mercurial > hg > nginx-tests
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 ############################################################################### |