# 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;;"; }; $ENV{TEST_NGINX_RESOLVER} = '8.8.8.8'; $ENV{TEST_NGINX_MEMCACHED_PORT} ||= 11212; no_long_string(); run_tests(); __DATA__ === TEST 1: basic --- http_config eval: $::HttpConfig --- config location /t { content_by_lua ' local memcached = require "resty.memcached" local memc = memcached:new() assert(memc:set_timeout(1000)) -- 1 sec local ok, err = memc:connect("127.0.0.1", $TEST_NGINX_MEMCACHED_PORT) if not ok then ngx.say("failed to connect: ", err) return end local session, err = memc:sslhandshake(nil, "test.com", false) if err ~= nil then ngx.say("failed to connect to memcached: ", err) return end local ok, err = memc:flush_all() if not ok then ngx.say("failed to flush all: ", err) return end local ok, err = memc:set("dog", 32) if not ok then ngx.say("failed to set dog: ", err) return end for i = 1, 2 do local res, flags, err = memc:get("dog") if err then ngx.say("failed to get dog: ", err) return end if not res then ngx.say("dog not found") return end ngx.say("dog: ", res, " (flags: ", flags, ")") end memc:close() '; } --- request GET /t --- response_body dog: 32 (flags: 0) dog: 32 (flags: 0) --- no_error_log [error] === TEST 2: verify server certificate failed --- http_config eval: $::HttpConfig --- config location /t { content_by_lua ' local memcached = require "resty.memcached" local memc = memcached:new() assert(memc:set_timeout(1000)) -- 1 sec local ok, err = memc:connect("127.0.0.1", $TEST_NGINX_MEMCACHED_PORT) if not ok then ngx.say("failed to connect: ", err) return end local session, err = memc:sslhandshake(nil, "test.com", true) if err ~= nil then ngx.say("failed to connect to memcached: ", err) return end local ok, err = memc:flush_all() if not ok then ngx.say("failed to flush all: ", err) return end local ok, err = memc:set("dog", 32) if not ok then ngx.say("failed to set dog: ", err) return end for i = 1, 2 do local res, flags, err = memc:get("dog") if err then ngx.say("failed to get dog: ", err) return end if not res then ngx.say("dog not found") return end ngx.say("dog: ", res, " (flags: ", flags, ")") end memc:close() '; } --- request GET /t --- response_body failed to connect to memcached: 19: self signed certificate in certificate chain --- error_log lua ssl certificate verify error: (19: self signed certificate in certificate chain)