# HG changeset patch # User Sergey Kandaurov # Date 1428513400 -10800 # Node ID dbf8fb0f3d30a3946a6b47db95239afd18659514 # Parent e82bbe71f50c6e03f85ef0978521f9dbd1261206 Tests: fixed unbuffered request body tests. In particular, made sure that the whole request body is read on backend. diff --git a/fastcgi_request_buffering.t b/fastcgi_request_buffering.t --- a/fastcgi_request_buffering.t +++ b/fastcgi_request_buffering.t @@ -49,15 +49,14 @@ http { client_header_buffer_size 1k; fastcgi_request_buffering off; fastcgi_param REQUEST_URI $request_uri; + fastcgi_param CONTENT_LENGTH $content_length; location / { client_body_buffer_size 2k; - add_header X-Body "$request_body"; fastcgi_pass 127.0.0.1:8081; } location /single { client_body_in_single_buffer on; - add_header X-Body "$request_body"; fastcgi_pass 127.0.0.1:8081; } location /preread { @@ -83,7 +82,7 @@ EOF ############################################################################### -unlike(http_get('/'), qr/X-Body:/ms, 'no body'); +like(http_get('/'), qr/X-Body: \x0d\x0a?/ms, 'no body'); like(http_get_body('/', '0123456789'), qr/X-Body: 0123456789\x0d?$/ms, 'body'); @@ -337,12 +336,11 @@ sub fastcgi_daemon { $socket); my $count; + my $body; + while( $request->Accept() >= 0 ) { $count++; - - if ($ENV{REQUEST_URI} eq '/stderr') { - warn "sample stderr text" x 512; - } + read(STDIN, $body, $ENV{'CONTENT_LENGTH'}); if ($ENV{REQUEST_URI} eq '/error_page') { print "Status: 404 Not Found" . CRLF . CRLF; @@ -352,6 +350,7 @@ sub fastcgi_daemon { print <Accept() >= 0 ) { $count++; + $body = ''; - if ($ENV{REQUEST_URI} eq '/stderr') { - warn "sample stderr text" x 512; - } + do { + read(STDIN, $buf, 1024); + $body .= $buf; + } while (length $buf); if ($ENV{REQUEST_URI} eq '/error_page') { print "Status: 404 Not Found" . CRLF . CRLF; @@ -393,6 +399,7 @@ sub fastcgi_daemon { print <