blob: dec093a20919286fdbb3f3515d64504ce06d4d65 [file] [log] [blame] [raw]
# vim:set ft= ts=4 sw=4 et fdm=marker:
use lib 'lib';
use Test::Nginx::Socket::Lua;
#worker_connections(1014);
#master_process_enabled(1);
#log_level('warn');
repeat_each(2);
plan tests => repeat_each() * (blocks() * 2 + 1);
#no_diff();
#no_long_string();
#master_on();
#workers(2);
run_tests();
__DATA__
=== TEST 1: read buffered body
--- config
location = /test {
rewrite_by_lua '
ngx.req.read_body()
ngx.say(ngx.var.request_body)
';
content_by_lua return;
}
--- request
POST /test
hello, world
--- response_body
hello, world
=== TEST 2: read buffered body (timed out)
--- config
client_body_timeout 1ms;
location = /test {
rewrite_by_lua '
ngx.req.read_body()
ngx.say(ngx.var.request_body)
';
content_by_lua return;
}
--- raw_request eval
"POST /test HTTP/1.1\r
Host: localhost\r
Content-Length: 100\r
Connection: close\r
\r
hello, world"
--- response_body:
--- error_code_like: ^(?:500)?$
=== TEST 3: read buffered body and then subrequest
--- config
location /foo {
echo -n foo;
}
location = /test {
rewrite_by_lua '
ngx.req.read_body()
local res = ngx.location.capture("/foo");
ngx.say(ngx.var.request_body)
ngx.say("sub: ", res.body)
';
content_by_lua return;
}
--- request
POST /test
hello, world
--- response_body
hello, world
sub: foo
=== TEST 4: first subrequest and then read buffered body
--- config
location /foo {
echo -n foo;
}
location = /test {
rewrite_by_lua '
local res = ngx.location.capture("/foo");
ngx.req.read_body()
ngx.say(ngx.var.request_body)
ngx.say("sub: ", res.body)
';
content_by_lua return;
}
--- request
POST /test
hello, world
--- response_body
hello, world
sub: foo
=== TEST 5: failed to write 100 continue
--- config
location = /test {
rewrite_by_lua '
ngx.req.read_body()
ngx.say(ngx.var.request_body)
ngx.exit(200)
';
}
--- request
POST /test
hello, world
--- more_headers
Expect: 100-Continue
--- ignore_response
--- no_error_log
[alert]
[error]
http finalize request: 500, "/test?" a:1, c:0