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 139 140 141 142 143 144 145
|
# vi:filetype=
use lib 'lib';
use Test::Nginx::Socket;
#repeat_each(2);
plan tests => repeat_each() * (4 * blocks());
$ENV{TEST_NGINX_MEMCACHED_PORT} ||= 11211;
#master_on();
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
Content-Length: 4
--- request
GET /flush
--- response_body eval: "OK\r\n"
=== TEST 2: set key in memcached (header buf overflown)
--- config
location /memc {
set $memc_key '/foo';
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- response_headers
Content-Type: text/plain
Content-Length: 8
--- request eval
"PUT /memc
HTTP/1.1 200 OK\r
Foo: Bar\r
Content-Type: foo/bar\r
\r
hello
"
--- response_body eval: "STORED\r\n"
--- error_code: 201
=== TEST 3: basic fetch (cache hit, but header buf overflown)
--- config
location /foo {
default_type text/css;
srcache_fetch GET /memc $uri;
srcache_store PUT /memc $uri;
srcache_header_buffer_size 22;
echo world;
}
location /memc {
internal;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /foo
--- response_headers
Content-Type: text/css
Content-Length:
--- response_body
world
=== TEST 4: 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
Content-Length: 4
--- request
GET /flush
--- response_body eval: "OK\r\n"
=== TEST 5: set key in memcached
--- config
location /memc {
set $memc_key '/foo';
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- response_headers
Content-Type: text/plain
Content-Length: 8
--- request eval
"PUT /memc
HTTP/1.1 200 OK\r
Foo: Bar\r
Content-Type: foo/bar\r
\r
hello
"
--- response_body eval: "STORED\r\n"
--- error_code: 201
=== TEST 6: basic fetch (cache hit, just enough big header buffer)
--- config
location /foo {
default_type text/css;
srcache_fetch GET /memc $uri;
srcache_store PUT /memc $uri;
srcache_header_buffer_size 23;
echo world;
}
location /memc {
internal;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /foo
--- response_headers
Content-Type: foo/bar
Content-Length: 5
--- response_body chomp
hello
|