Mercurial > hg > nginx-tests
changeset 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 | d7e83ce613c2 |
children | 577e72267fec |
files | stream_udp_proxy.t |
diffstat | 1 files changed, 26 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/stream_udp_proxy.t Tue Jun 02 14:30:27 2020 +0300 +++ b/stream_udp_proxy.t Wed Jun 10 15:35:20 2020 +0300 @@ -22,7 +22,7 @@ select STDERR; $| = 1; select STDOUT; $| = 1; -my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(4) +my $t = Test::Nginx->new()->has(qw/stream udp/)->plan(8) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% @@ -75,6 +75,22 @@ $s = dgram('127.0.0.1:' . port(8983)); is($s->io('3', read => 3), '123', 'proxy responses default'); +# zero-length payload + +TODO: { +local $TODO = 'not yet' unless $t->has_version('1.19.1'); + +$s = dgram('127.0.0.1:' . port(8982)); +$s->write(''); +is($s->read(), 'zero', 'upstream read zero bytes'); +is($s->read(), '', 'upstream sent zero bytes'); + +$s->write(''); +is($s->read(), 'zero', 'upstream read zero bytes again'); +is($s->read(), '', 'upstream sent zero bytes again'); + +} + ############################################################################### sub udp_daemon { @@ -94,7 +110,15 @@ while (1) { $server->recv(my $buffer, 65536); - $server->send($_) for (1 .. $buffer); + + if (length($buffer) > 0) { + $server->send($_) for (1 .. $buffer); + + } else { + $server->send('zero'); + select undef, undef, undef, 0.2; + $server->send(''); + } } }