# HG changeset patch # User Sergey Kandaurov # Date 1567525856 -10800 # Node ID 91235919d80ff36ce86acdf445938d2ad3379a80 # Parent 44ce08f5259f034c102b7f99b37c423de848c75a Tests: request body and invalid chunked transfer encoding. diff --git a/body_chunked.t b/body_chunked.t --- a/body_chunked.t +++ b/body_chunked.t @@ -22,7 +22,7 @@ use Test::Nginx; select STDERR; $| = 1; select STDOUT; $| = 1; -my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(11); +my $t = Test::Nginx->new()->has(qw/http proxy rewrite/)->plan(13); $t->write_file_expand('nginx.conf', <<'EOF'); @@ -134,6 +134,39 @@ like(http_get_body('/discard', '01234567 '0123456789', 'foobar'), qr/(TEST.*){4}/ms, 'chunked body discard 2'); +# invalid chunks + +TODO: { +local $TODO = 'not yet' unless $t->has_version('1.17.4'); + +like( + http( + 'GET / HTTP/1.1' . CRLF + . 'Host: localhost' . CRLF + . 'Connection: close' . CRLF + . 'Transfer-Encoding: chunked' . CRLF . CRLF + . '4' . CRLF + . 'SEE-THIS' . CRLF + . '0' . CRLF . CRLF + ), + qr/400 Bad/, 'runaway chunk' +); + +unlike( + http( + 'GET /discard HTTP/1.1' . CRLF + . 'Host: localhost' . CRLF + . 'Connection: close' . CRLF + . 'Transfer-Encoding: chunked' . CRLF . CRLF + . '4' . CRLF + . 'SEE-THIS' . CRLF + . '0' . CRLF . CRLF + ), + qr/200 OK/, 'runaway chunk discard' +); + +} + # proxy_next_upstream like(http_get_body('/next', '0123456789'),