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 146 147 148 149 150 151 152 153 154 155 156
|
# vim:set ft= ts=4 sw=4 et:
use Test::Nginx::Socket::Lua;
use Cwd qw(cwd);
repeat_each(2);
plan tests => repeat_each() * (3 * blocks());
my $pwd = cwd();
our $HttpConfig = qq{
lua_package_path "$pwd/lib/?.lua;;;";
lua_package_cpath "/usr/local/openresty-debug/lualib/?.so;/usr/local/openresty/lualib/?.so;;";
};
$ENV{TEST_NGINX_RESOLVER} = '8.8.8.8';
$ENV{TEST_NGINX_REDIS_PORT} ||= 6379;
no_long_string();
#no_diff();
run_tests();
__DATA__
=== TEST 1: hmset key-pairs
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua '
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", $TEST_NGINX_REDIS_PORT)
if not ok then
ngx.say("failed to connect: ", err)
return
end
local res, err = red:hmset("animals", "dog", "bark", "cat", "meow")
if not res then
ngx.say("failed to set animals: ", err)
return
end
ngx.say("hmset animals: ", res)
local res, err = red:hmget("animals", "dog", "cat")
if not res then
ngx.say("failed to get animals: ", err)
return
end
ngx.say("hmget animals: ", res)
red:close()
';
}
--- request
GET /t
--- response_body
hmset animals: OK
hmget animals: barkmeow
--- no_error_log
[error]
=== TEST 2: hmset lua tables
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua '
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", $TEST_NGINX_REDIS_PORT)
if not ok then
ngx.say("failed to connect: ", err)
return
end
local t = { dog = "bark", cat = "meow", cow = "moo" }
local res, err = red:hmset("animals", t)
if not res then
ngx.say("failed to set animals: ", err)
return
end
ngx.say("hmset animals: ", res)
local res, err = red:hmget("animals", "dog", "cat", "cow")
if not res then
ngx.say("failed to get animals: ", err)
return
end
ngx.say("hmget animals: ", res)
red:close()
';
}
--- request
GET /t
--- response_body
hmset animals: OK
hmget animals: barkmeowmoo
--- no_error_log
[error]
=== TEST 3: hmset a single scalar
--- http_config eval: $::HttpConfig
--- config
location /t {
content_by_lua '
local redis = require "resty.redis"
local red = redis:new()
red:set_timeout(1000) -- 1 sec
local ok, err = red:connect("127.0.0.1", $TEST_NGINX_REDIS_PORT)
if not ok then
ngx.say("failed to connect: ", err)
return
end
local res, err = red:hmset("animals", "cat")
if not res then
ngx.say("failed to set animals: ", err)
return
end
ngx.say("hmset animals: ", res)
local res, err = red:hmget("animals", "cat")
if not res then
ngx.say("failed to get animals: ", err)
return
end
ngx.say("hmget animals: ", res)
red:close()
';
}
--- request
GET /t
--- response_body_like: 500 Internal Server Error
--- error_code: 500
--- error_log
table expected, got string
|