-
Notifications
You must be signed in to change notification settings - Fork 35
/
05-retry_simple.t
115 lines (95 loc) · 2.28 KB
/
05-retry_simple.t
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
# vim:set ts=4 sw=4 et fdm=marker:
use lib '.';
use Test::Nginx::Socket::Lua;
use t::Util;
our $HttpConfig = $t::Util::HttpConfig;
plan tests => repeat_each() * blocks() * 3;
run_tests();
__DATA__
=== TEST 1: retry_simple on_read_timeout() sanity
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua_block {
local retry_simple = require 'resty.cassandra.policies.retry.simple'
ngx.say(retry_simple.name)
local retry = retry_simple.new(3)
for i = 0, 4 do
ngx.say(i, ' ', retry:on_read_timeout({retries = i}))
end
}
}
--- request
GET /t
--- response_body
simple
0 true
1 true
2 true
3 false
4 false
--- no_error_log
[error]
=== TEST 2: retry_simple on_write_timeout() sanity
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua_block {
local retry_simple = require 'resty.cassandra.policies.retry.simple'
local retry = retry_simple.new(3)
for i = 0, 4 do
ngx.say(i, ' ', retry:on_write_timeout({retries = i}))
end
}
}
--- request
GET /t
--- response_body
0 true
1 true
2 true
3 false
4 false
--- no_error_log
[error]
=== TEST 3: retry_simple on_unavailable() sanity
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua_block {
local retry_simple = require 'resty.cassandra.policies.retry.simple'
local retry = retry_simple.new(3)
for i = 0, 4 do
ngx.say(i, ' ', retry:on_unavailable({retries = i}))
end
}
}
--- request
GET /t
--- response_body
0 false
1 false
2 false
3 false
4 false
--- no_error_log
[error]
=== TEST 4: retry_simple input check
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua_block {
local retry_simple = require 'resty.cassandra.policies.retry.simple'
local ok, err = pcall(retry_simple.new)
ngx.say(ok, ' ', err)
ok, err = pcall(retry_simple.new, 0)
ngx.say(ok, ' ', err)
}
}
--- request
GET /t
--- response_body
false arg #1 max_retries must be a positive integer
false arg #1 max_retries must be a positive integer
--- no_error_log
[error]