tests: added a passing test case for connecting to IPv6 addresses via cosockets.

This commit is contained in:
Yichun Zhang (agentzh) 2014-09-24 15:06:23 -07:00
Родитель 4323f3bc13
Коммит c9128e50f9
2 изменённых файлов: 76 добавлений и 1 удалений

Просмотреть файл

@ -5,7 +5,7 @@ use Test::Nginx::Socket::Lua;
repeat_each(2);
plan tests => repeat_each() * 169;
plan tests => repeat_each() * 172;
our $HtmlDir = html_dir;
@ -3220,3 +3220,77 @@ close: 1 nil
lua socket tcp_nodelay
[error]
=== TEST 54: IPv6
--- http_config
server_tokens off;
server {
listen [::1]:$TEST_NGINX_PORT;
location /foo {
content_by_lua 'ngx.say("foo")';
more_clear_headers Date;
}
}
--- config
location /t {
#set $port 5000;
set $port $TEST_NGINX_SERVER_PORT;
content_by_lua '
local sock = ngx.socket.tcp()
local port = ngx.var.port
local ok, err = sock:connect("[::1]", port)
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
local line, err, part = sock:receive()
if line then
ngx.say("received: ", line)
else
ngx.say("failed to receive a line: ", err, " [", part, "]")
break
end
end
ok, err = sock:close()
ngx.say("close: ", ok, " ", err)
';
}
--- request
GET /t
--- response_body
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
--- no_error_log
[error]

Просмотреть файл

@ -19,6 +19,7 @@ force=$2
#--without-http_referer_module \
time ngx-build $force $version \
--with-ipv6 \
--with-cc-opt="-I$PCRE_INC" \
--with-http_realip_module \
--with-http_ssl_module \