diff options
author | kaiwu <kaiwu2004@gmail.com> | 2025-03-01 12:42:23 +0800 |
---|---|---|
committer | kaiwu <kaiwu2004@gmail.com> | 2025-03-01 12:42:23 +0800 |
commit | 3f33461e4948bf05e60bdff35ec6c57a649c7860 (patch) | |
tree | 284c2ba95a41536ae1bff6bea710db0709a64739 /ngx_stream_lua-0.0.16/t/059-unix-socket.t | |
download | openresty-3f33461e4948bf05e60bdff35ec6c57a649c7860.tar.gz openresty-3f33461e4948bf05e60bdff35ec6c57a649c7860.zip |
openresty bundle
Diffstat (limited to 'ngx_stream_lua-0.0.16/t/059-unix-socket.t')
-rw-r--r-- | ngx_stream_lua-0.0.16/t/059-unix-socket.t | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/ngx_stream_lua-0.0.16/t/059-unix-socket.t b/ngx_stream_lua-0.0.16/t/059-unix-socket.t new file mode 100644 index 0000000..8df7c06 --- /dev/null +++ b/ngx_stream_lua-0.0.16/t/059-unix-socket.t @@ -0,0 +1,123 @@ +# vim:set ft= ts=4 sw=4 et fdm=marker: + +use Test::Nginx::Socket::Lua::Stream; + +repeat_each(2); + +plan tests => repeat_each() * (blocks() * 2 + 1); + +$ENV{TEST_NGINX_HTML_DIR} ||= html_dir(); + +no_long_string(); +#no_shuffle(); + +run_tests(); + +__DATA__ + +=== TEST 1: connection refused (unix domain socket) +--- stream_server_config + content_by_lua_block { + local sock = ngx.socket.tcp() + local ok, err = sock:connect("unix:/tmp/nosuchfile.sock") + ngx.say("connect: ", ok, " ", err) + + local bytes + bytes, err = sock:send("hello") + ngx.say("send: ", bytes, " ", err) + + local line + line, err = sock:receive() + ngx.say("receive: ", line, " ", err) + + ok, err = sock:close() + ngx.say("close: ", ok, " ", err) + } +--- stream_response +connect: nil no such file or directory +send: nil closed +receive: nil closed +close: nil closed +--- error_log eval +qr{\[crit\] .*? connect\(\) to unix:/tmp/nosuchfile\.sock failed} + + + +=== TEST 2: invalid host argument +--- stream_server_config + content_by_lua_block { + local sock = ngx.socket.tcp() + local ok, err = sock:connect("/tmp/test-nginx.sock") + if not ok then + ngx.say("failed to connect: ", err) + return + end + + ngx.say("connected: ", ok) + } +--- stream_response +failed to connect: failed to parse host name "/tmp/test-nginx.sock": invalid host + + + +=== TEST 3: sanity +--- http_config + server { + listen unix:$TEST_NGINX_HTML_DIR/nginx.sock; + default_type 'text/plain'; + + server_tokens off; + location /foo { + content_by_lua 'ngx.say("foo")'; + more_clear_headers Date; + } + } +--- stream_server_config + content_by_lua_block { + local sock = ngx.socket.tcp() + local ok, err = sock:connect("unix:$TEST_NGINX_HTML_DIR/nginx.sock") + if not ok then + ngx.say("failed to connect: ", err) + return + end + + ngx.say("connected: ", ok) + + local req = "GET /foo HTTP/1.0\r\nHost: localhost\r\nConnection: close\r\n\r\n" + -- req = "OK" + + local bytes, err = sock:send(req) + if not bytes then + ngx.say("failed to send request: ", err) + return + end + + ngx.say("request sent: ", bytes) + + while true do + print("calling receive") + local line, err = sock:receive() + if line then + ngx.say("received: ", line) + + else + ngx.say("failed to receive a line: ", err) + break + end + end + + ok, err = sock:close() + ngx.say("close: ", ok, " ", err) + } +--- stream_response +connected: 1 +request sent: 57 +received: HTTP/1.1 200 OK +received: Server: nginx +received: Content-Type: text/plain +received: Content-Length: 4 +received: Connection: close +received: +received: foo +failed to receive a line: closed +close: 1 nil |