1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
# vi:filetype=
use lib 'lib';
use Test::Nginx::Socket;
#repeat_each(100);
plan tests => repeat_each() * 3 * blocks();
$ENV{TEST_NGINX_MEMCACHED_PORT} ||= 11211;
$ENV{TEST_NGINX_POSTGRESQL_PORT} ||= 5432;
no_shuffle();
run_tests();
__DATA__
=== TEST 1: flush all
--- config
location /flush {
set $memc_cmd 'flush_all';
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- response_headers
Content-Type: text/plain
--- request
GET /flush
--- response_body eval: "OK\r\n"
=== TEST 2: cache miss
--- http_config
upstream backend {
postgres_server 127.0.0.1:$TEST_NGINX_POSTGRESQL_PORT
dbname=ngx_test user=ngx_test password=ngx_test;
}
--- config
location /cats {
srcache_fetch GET /memc $uri;
srcache_store PUT /memc $uri;
default_type text/css;
postgres_pass backend;
postgres_query 'select * from cats';
rds_json on;
}
location /memc {
internal;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /cats
--- response_headers
Content-Type: application/json
--- response_body chomp
[{"id":2,"name":null},{"id":3,"name":"bob"}]
=== TEST 3: cache hit
--- http_config
upstream backend {
postgres_server 127.0.0.1:$TEST_NGINX_POSTGRESQL_PORT
dbname=ngx_test user=ngx_test password=ngx_test;
}
--- config
location /cats {
srcache_fetch GET /memc $uri;
srcache_store PUT /memc $uri;
default_type text/css;
postgres_pass backend;
postgres_query 'invalid sql here';
rds_json on;
}
location /memc {
internal;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /cats
--- response_headers
Content-Type: application/json
--- response_body chomp
[{"id":2,"name":null},{"id":3,"name":"bob"}]
=== TEST 4: SSL packet issue (bug)
--- SKIP
--- http_config
upstream backend {
postgres_server 127.0.0.1:$TEST_NGINX_POSTGRESQL_PORT
dbname=ngx_test user=ngx_test password=ngx_test;
}
--- config
location /cats {
srcache_fetch GET /memc $uri;
srcache_store PUT /memc $uri;
default_type application/json;
postgres_escape $token $arg_token;
postgres_escape $limit $arg_limit;
postgres_pass backend;
postgres_query HEAD GET "select $token,$limit";
rds_json on;
}
location /memc {
internal;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /cats?token=3&limit=10
--- response_headers
Content-Type: text/css
--- response_body chomp
[{"id":2,"name":null},{"id":3,"name":"bob"}]
--- SKIP
|