Tests: stream udp tests with zero-length payload (ticket #1982).
diff --git a/stream_udp_proxy.t b/stream_udp_proxy.t
index fb0ac79..2cd8303 100644
--- a/stream_udp_proxy.t
+++ b/stream_udp_proxy.t
@@ -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('');
+		}
 	}
 }