Permalink
Fetching contributors…
Cannot retrieve contributors at this time
159 lines (128 sloc) 3.67 KB
# vi:ft=
use lib 'lib';
use Test::Nginx::Socket;
repeat_each(2);
#repeat_each(1);
plan tests => repeat_each() * (blocks() * 2 + 2);
our $http_config = <<'_EOC_';
upstream foo {
drizzle_server www.taobao.com:1234;
}
_EOC_
worker_connections(128);
#log_level('error');
$ENV{TEST_NGINX_MYSQL_PORT} ||= 3306;
$ENV{TEST_NGINX_MYSQL_HOST} ||= '127.0.0.1';
no_diff();
run_tests();
__DATA__
=== TEST 1: loc_config connect timeout
--- http_config eval: $::http_config
--- config
location /upstream {
set $backend foo;
drizzle_pass $backend;
drizzle_module_header off;
drizzle_query 'select * from xx';
drizzle_connect_timeout 10ms;
}
--- request
GET /upstream
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 0.5
=== TEST 2: http_config connect timeout
--- http_config eval: $::http_config
--- config
drizzle_connect_timeout 3;
location /upstream {
set $backend foo;
drizzle_pass $backend;
drizzle_module_header off;
drizzle_query 'select * from xx';
drizzle_connect_timeout 10ms;
}
--- request
GET /upstream
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 0.5
=== TEST 3: serv_config connect timeout
--- http_config eval: $::http_config
--- config
drizzle_connect_timeout 10ms;
location /upstream {
set $backend foo;
drizzle_pass $backend;
drizzle_module_header off;
drizzle_query 'select * from xx';
}
--- request
GET /upstream
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 0.5
=== TEST 4: serv_config send query timeout (busy select)
--- http_config
upstream backend {
drizzle_server 127.0.0.1:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
}
--- config
#drizzle_connect_timeout 1;
drizzle_send_query_timeout 10ms;
#drizzle_recv_cols_timeout 10ms;
#drizzle_recv_rows_timeout 10ms;
location /upstream {
drizzle_pass backend;
drizzle_module_header off;
drizzle_query 'select sql_no_cache * from cats as a, cats as b, cats as c, cats as d, cats as e, cats as f, cats as g, cats as h, cats as i, cats as j order by a.id, b.id, c.id, d.id';
}
--- request
GET /upstream
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 1
--- SKIP
=== TEST 5: loc_config connect timeout (empty $drizzle_thread_id)
--- http_config eval: $::http_config
--- config
location /upstream {
set $backend foo;
drizzle_pass $backend;
drizzle_module_header off;
drizzle_query 'select * from xx';
drizzle_connect_timeout 10ms;
more_set_headers -s 504 'X-Mysql-Tid: $drizzle_thread_id';
}
--- request
GET /upstream
--- response_headers
X-Mysql-Tid:
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 0.5
=== TEST 6: serv_config send query timeout (sleep select)
--- http_config
upstream backend {
drizzle_server $TEST_NGINX_MYSQL_HOST:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
}
--- config
#drizzle_connect_timeout 1;
drizzle_send_query_timeout 80ms;
#drizzle_recv_cols_timeout 10ms;
#drizzle_recv_rows_timeout 10ms;
location /upstream {
drizzle_pass backend;
drizzle_module_header off;
drizzle_query 'select sql_no_cache sleep(1);';
more_set_headers -s 504 "X-Mysql-Tid: $drizzle_thread_id";
}
--- request
GET /upstream
--- error_code: 504
--- response_body_like: 504 Gateway Time-out
--- timeout: 1
--- response_headers_like
X-Mysql-Tid: \d+