summaryrefslogtreecommitdiff
path: root/ngx_stream_lua-0.0.16/t/059-unix-socket.t
diff options
context:
space:
mode:
authorkaiwu <kaiwu2004@gmail.com>2025-03-01 12:42:23 +0800
committerkaiwu <kaiwu2004@gmail.com>2025-03-01 12:42:23 +0800
commit3f33461e4948bf05e60bdff35ec6c57a649c7860 (patch)
tree284c2ba95a41536ae1bff6bea710db0709a64739 /ngx_stream_lua-0.0.16/t/059-unix-socket.t
downloadopenresty-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.t123
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