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
|
# vi:filetype=
use lib 'lib';
use Test::Nginx::Socket;
plan tests => repeat_each() * 2 * blocks();
$ENV{TEST_NGINX_MEMCACHED_PORT} ||= 11211;
#no_diff;
run_tests();
__DATA__
=== TEST 1: delete non-existent item
--- config
location /main {
echo 'flush_all';
echo_location '/memc?cmd=flush_all';
echo 'delete foo';
echo_location '/memc?key=foo&cmd=delete';
}
location /memc {
echo_before_body "status: $echo_response_status";
echo_before_body "exptime: $memc_exptime";
set $memc_cmd $arg_cmd;
set $memc_key $arg_key;
set $memc_value $arg_val;
set $memc_exptime $arg_exptime;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /main
--- response_body_like
^flush_all
status: 200
exptime:
OK\r
delete foo
status: 404
exptime:
<html>.*?404 Not Found.*$
=== TEST 2: set and delete and set
--- config
location /main {
echo 'set foo bar';
echo_location '/memc?cmd=set&key=foo&val=bar';
echo 'delete foo';
echo_location '/memc?key=foo&cmd=delete';
echo 'get foo';
echo_location '/memc?key=foo&cmd=get';
}
location /memc {
echo_before_body "status: $echo_response_status";
echo_before_body "exptime: $memc_exptime";
set $memc_cmd $arg_cmd;
set $memc_key $arg_key;
set $memc_value $arg_val;
set $memc_exptime $arg_exptime;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /main
--- response_body_like
^set foo bar
status: 201
exptime: 0
STORED\r
delete foo
status: 200
exptime:
DELETED\r
get foo
status: 404
exptime:
<html>.*?404 Not Found.*$
=== TEST 3: set and delete and set (with exptime)
--- config
location /main {
echo 'set foo bar';
echo_location '/memc?cmd=set&key=foo&val=bar';
echo 'delete foo 1';
echo_location '/memc?key=foo&cmd=delete&exptime=1';
echo 'add foo cat';
echo_location '/memc?key=foo&cmd=add&val=cat';
echo_blocking_sleep 1.6;
echo 'add foo cat - 2nd';
echo_location '/memc?key=foo&cmd=add&val=cat';
}
location /memc {
echo_before_body "status: $echo_response_status";
echo_before_body "exptime: $memc_exptime";
set $memc_cmd $arg_cmd;
set $memc_key $arg_key;
set $memc_value $arg_val;
set $memc_exptime $arg_exptime;
memc_pass 127.0.0.1:$TEST_NGINX_MEMCACHED_PORT;
}
--- request
GET /main
--- response_body eval
"set foo bar
status: 201
exptime: 0
STORED\r
delete foo 1
status: 200
exptime: 1
DELETED\r
add foo cat
status: 200
exptime: 0
NOT_STORED\r
add foo cat - 2nd
status: 201
exptime: 0
STORED\r
"
--- SKIP
|