blob: 9fccf37fe7f3be8d7d13edc592af00ea66e4a74d (
plain)
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
|