Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

298 lines (258 sloc) 7.061 kB
# vi:filetype=
use lib 'lib';
use Test::Nginx::Socket;
#repeat_each(2);
plan tests => repeat_each() * 2 * blocks();
$ENV{TEST_NGINX_MYSQL_PORT} ||= 3306;
$ENV{TEST_NGINX_MYSQL_HOST} ||= '127.0.0.1';
#master_on();
our $http_config = <<'_EOC_';
upstream backend {
drizzle_server $TEST_NGINX_MYSQL_HOST:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
drizzle_keepalive max=10 overflow=reject mode=single;
}
upstream backend2 {
drizzle_server $TEST_NGINX_MYSQL_HOST:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
#drizzle_keepalive max=10 overflow=ignore mode=single;
}
upstream foo {
server 127.0.0.1:80;
}
_EOC_
our $http_config2 = <<'_EOC_';
upstream backend {
drizzle_server $TEST_NGINX_MYSQL_HOST:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
drizzle_keepalive max=10 overflow=reject mode=single;
}
upstream backend2 {
drizzle_server $TEST_NGINX_MYSQL_HOST:$TEST_NGINX_MYSQL_PORT protocol=mysql
dbname=ngx_test user=ngx_test password=ngx_test;
drizzle_keepalive max=5 overflow=ignore mode=multi;
}
_EOC_
worker_connections(128);
no_long_string();
#no_diff();
run_tests();
__DATA__
=== TEST 1: sanity
--- http_config eval: $::http_config
--- config
location /status {
drizzle_status;
}
--- request
GET /status
--- response_body
upstream backend
active connections: 0
connection pool capacity: 10
overflow: reject
cached connection queue: 0
free'd connection queue: 10
cached connection successfully used count:
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 0
servers: 1
peers: 1
=== TEST 2: single mode and no pools
--- http_config eval: $::http_config
--- config
location @my_err {
echo "500 Internal Server Error";
}
location ~ ^/mysql(2?)$ {
drizzle_query "select sum(1) from $args";
drizzle_pass backend$1;
error_page 500 = @my_err;
rds_json on;
}
location /status {
drizzle_status;
}
location /main {
echo_location /mysql cats;
echo_location /mysql cats;
echo_location /mysql cats;
echo;
echo_location /status;
echo_location /mysql2 cats;
echo_location /mysql2 cats;
echo;
echo_location /status;
}
--- request
GET /main
--- response_body
[{"sum(1)":2}][{"sum(1)":2}][{"sum(1)":2}]
upstream backend
active connections: 1
connection pool capacity: 10
overflow: reject
cached connection queue: 1
free'd connection queue: 9
cached connection successfully used count: 3
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 0
servers: 1
peers: 1
[{"sum(1)":2}][{"sum(1)":2}]
upstream backend
active connections: 1
connection pool capacity: 10
overflow: reject
cached connection queue: 1
free'd connection queue: 9
cached connection successfully used count: 3
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 0
servers: 1
peers: 1
=== TEST 3: single & multi mode pools
--- http_config eval: $::http_config2
--- config
location @my_err {
echo "500 Internal Server Error";
}
location ~ ^/mysql(2?)$ {
drizzle_query "select sum(1) from $args";
drizzle_pass backend$1;
error_page 500 = @my_err;
rds_json on;
}
location /status {
drizzle_status;
}
location /main {
echo_location /mysql cats;
echo_location /mysql cats;
echo_location /mysql cats;
echo;
echo_location /status;
echo_location /mysql2 cats;
echo_location /mysql2 cats;
echo;
echo_location /status;
}
--- request
GET /main
--- response_body
[{"sum(1)":2}][{"sum(1)":2}][{"sum(1)":2}]
upstream backend
active connections: 1
connection pool capacity: 10
overflow: reject
cached connection queue: 1
free'd connection queue: 9
cached connection successfully used count: 3
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 5
overflow: ignore
cached connection queue: 0
free'd connection queue: 5
cached connection successfully used count:
free'd connection successfully used count: 0 0 0 0 0
servers: 1
peers: 1
[{"sum(1)":2}][{"sum(1)":2}]
upstream backend
active connections: 1
connection pool capacity: 10
overflow: reject
cached connection queue: 1
free'd connection queue: 9
cached connection successfully used count: 3
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 1
connection pool capacity: 5
overflow: ignore
cached connection queue: 1
free'd connection queue: 4
cached connection successfully used count: 2
free'd connection successfully used count: 0 0 0 0
servers: 1
peers: 1
=== TEST 4: single mode and bad request
--- http_config eval: $::http_config
--- config
location @my_err {
echo "500 Internal Server Error";
}
location ~ ^/mysql(2?)$ {
drizzle_query "select sum(1) from $args";
drizzle_pass backend$1;
error_page 500 = @my_err;
rds_json on;
}
location /status {
drizzle_status;
}
location /main {
echo_location /mysql cats;
echo_location /mysql cats;
echo_location /mysql cats;
echo_location /mysql select;
echo;
echo_location /status;
echo_location /mysql cats;
echo_location /mysql cats;
echo;
echo_location /status;
}
--- request
GET /main
--- response_body
[{"sum(1)":2}][{"sum(1)":2}][{"sum(1)":2}]500 Internal Server Error
upstream backend
active connections: 0
connection pool capacity: 10
overflow: reject
cached connection queue: 0
free'd connection queue: 10
cached connection successfully used count:
free'd connection successfully used count: 3 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 0
servers: 1
peers: 1
[{"sum(1)":2}][{"sum(1)":2}]
upstream backend
active connections: 1
connection pool capacity: 10
overflow: reject
cached connection queue: 1
free'd connection queue: 9
cached connection successfully used count: 2
free'd connection successfully used count: 0 0 0 0 0 0 0 0 0
servers: 1
peers: 1
upstream backend2
active connections: 0
connection pool capacity: 0
servers: 1
peers: 1
Jump to Line
Something went wrong with that request. Please try again.