# vim:set ft= ts=4 sw=4 et fdm=marker: use Test::Nginx::Socket::Lua; #worker_connections(1014); #master_process_enabled(1); log_level('warn'); repeat_each(2); plan tests => repeat_each() * (blocks() * 2 + 2) + 2; #no_diff(); #no_long_string(); run_tests(); __DATA__ === TEST 1: get_phase in init_by_lua --- http_config init_by_lua 'phase = ngx.get_phase()'; --- config location /lua { content_by_lua ' ngx.say(phase) '; } --- request GET /lua --- response_body init === TEST 2: get_phase in set_by_lua --- config set_by_lua $phase 'return ngx.get_phase()'; location /lua { content_by_lua ' ngx.say(ngx.var.phase) '; } --- request GET /lua --- response_body set === TEST 3: get_phase in rewrite_by_lua --- config location /lua { rewrite_by_lua ' ngx.say(ngx.get_phase()) ngx.exit(200) '; } --- request GET /lua --- response_body rewrite === TEST 4: get_phase in access_by_lua --- config location /lua { access_by_lua ' ngx.say(ngx.get_phase()) ngx.exit(200) '; } --- request GET /lua --- response_body access === TEST 5: get_phase in content_by_lua --- config location /lua { content_by_lua ' ngx.say(ngx.get_phase()) '; } --- request GET /lua --- response_body content === TEST 6: get_phase in header_filter_by_lua --- config location /lua { echo "OK"; header_filter_by_lua ' ngx.header.Phase = ngx.get_phase() '; } --- request GET /lua --- response_header Phase: header_filter === TEST 7: get_phase in body_filter_by_lua --- config location /lua { content_by_lua ' ngx.exit(200) '; body_filter_by_lua ' ngx.arg[1] = ngx.get_phase() '; } --- request GET /lua --- response_body chop body_filter === TEST 8: get_phase in log_by_lua --- config location /lua { echo "OK"; log_by_lua ' ngx.log(ngx.ERR, ngx.get_phase()) '; } --- request GET /lua --- error_log log === TEST 9: get_phase in ngx.timer callback --- config location /lua { echo "OK"; log_by_lua ' local function f() ngx.log(ngx.WARN, "current phase: ", ngx.get_phase()) end local ok, err = ngx.timer.at(0, f) if not ok then ngx.log(ngx.ERR, "failed to add timer: ", err) end '; } --- request GET /lua --- no_error_log [error] --- error_log current phase: timer === TEST 10: get_phase in init_worker_by_lua --- http_config init_worker_by_lua 'phase = ngx.get_phase()'; --- config location /lua { content_by_lua ' ngx.say(phase) '; } --- request GET /lua --- response_body init_worker --- no_error_log [error] === TEST 11: get_phase in exit_worker_by_lua --- http_config exit_worker_by_lua_block { local phase = ngx.get_phase() ngx.log(ngx.ERR, phase) ngx.log(ngx.ERR, "exiting now") } --- config location /lua { content_by_lua_block { ngx.say("ok") } } --- request GET /lua --- response_body ok --- shutdown_error_log eval [ qr/exit_worker_by_lua\(nginx\.conf:\d+\):\d+: exit_worker/, qr/exiting now$/, ] === TEST 12: server_rewrite_by_lua_block in http --- http_config server_rewrite_by_lua_block { ngx.ctx.phase = ngx.get_phase() } --- config location /lua { content_by_lua_block { ngx.say(ngx.ctx.phase) } } --- request GET /lua --- response_body server_rewrite --- no_error_log [error]