84 lines
1.7 KiB
C
84 lines
1.7 KiB
C
|
# vim:set ft= ts=4 sw=4 et fdm=marker:
|
||
|
|
||
|
use Test::Nginx::Socket::Lua;
|
||
|
|
||
|
master_on();
|
||
|
workers(2);
|
||
|
log_level('debug');
|
||
|
|
||
|
repeat_each(1);
|
||
|
|
||
|
plan tests => repeat_each() * (blocks() * 3);
|
||
|
|
||
|
no_long_string();
|
||
|
|
||
|
run_tests();
|
||
|
|
||
|
__DATA__
|
||
|
|
||
|
=== TEST 1: closes unused file descriptors when 'reuseport' is enabled
|
||
|
--- http_config
|
||
|
server {
|
||
|
listen 127.0.0.1:12345 reuseport;
|
||
|
}
|
||
|
--- config
|
||
|
location /t {
|
||
|
return 200;
|
||
|
}
|
||
|
--- request
|
||
|
GET /t
|
||
|
--- ignore_response_body
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
--- grep_error_log eval: qr/\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.1:12345/
|
||
|
--- grep_error_log_out eval
|
||
|
qr/\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.1:12345
|
||
|
\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.1:12345
|
||
|
/
|
||
|
|
||
|
|
||
|
|
||
|
=== TEST 2: closes multiple unused file descriptors when 'reuseport' is enabled
|
||
|
--- http_config
|
||
|
server {
|
||
|
listen 127.0.0.1:12345 reuseport;
|
||
|
}
|
||
|
|
||
|
server {
|
||
|
listen 127.0.0.2:12345 reuseport;
|
||
|
}
|
||
|
--- config
|
||
|
location /t {
|
||
|
return 200;
|
||
|
}
|
||
|
--- request
|
||
|
GET /t
|
||
|
--- ignore_response_body
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
--- grep_error_log eval: qr/\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.\d+:12345/
|
||
|
--- grep_error_log_out eval
|
||
|
qr/\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.1:12345
|
||
|
\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.2:12345
|
||
|
\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.1:12345
|
||
|
\[debug\] .*? closing unused fd:\d+ listening on 127\.0\.0\.2:12345
|
||
|
/
|
||
|
|
||
|
|
||
|
|
||
|
=== TEST 3: does not close any fd if 'reuseport' is not used
|
||
|
--- http_config
|
||
|
server {
|
||
|
listen 127.0.0.1:12345;
|
||
|
}
|
||
|
--- config
|
||
|
location /t {
|
||
|
return 200;
|
||
|
}
|
||
|
--- request
|
||
|
GET /t
|
||
|
--- ignore_response_body
|
||
|
--- no_error_log
|
||
|
[error]
|
||
|
closing unused fd
|