# vi:ft= use lib 'lib'; use Test::Nginx::Socket; repeat_each(2); plan tests => repeat_each() * (2 * blocks() + 1); $ENV{TEST_NGINX_REDIS_PORT} ||= 6379; #master_on; #worker_connections 1024; #no_diff; log_level 'warn'; run_tests(); __DATA__ === TEST 1: advanced query (2 pipelined) --- config location /a { redis2_query set hello world; redis2_query get hello; redis2_pass 127.0.0.1:$TEST_NGINX_REDIS_PORT; } --- request GET /a --- response_body eval "+OK\r\n\$5\r\nworld\r\n" === TEST 2: 4 pipelined --- config location /a { redis2_query set hello world; redis2_query get hello; redis2_query set hello agentzh; redis2_query get hello; redis2_pass 127.0.0.1:$TEST_NGINX_REDIS_PORT; } --- request GET /a --- response_body eval "+OK\r\n\$5\r\nworld\r\n+OK\r\n\$7\r\nagentzh\r\n" === TEST 3: redis2_raw_queries (2 queries) --- config location /pipelined2 { set_unescape_uri $n $arg_n; set_unescape_uri $cmds $arg_cmds; redis2_raw_queries $n $cmds; redis2_pass 127.0.0.1:$TEST_NGINX_REDIS_PORT; } --- request GET /pipelined2?n=2&cmds=flushall%0D%0Aget%20key%0D%0A --- response_body eval "+OK\r\n\$-1\r\n" === TEST 4: redis2_raw_queries (2 queries, smaller N arg, bad) --- config location /pipelined2 { set_unescape_uri $n $arg_n; set_unescape_uri $cmds $arg_cmds; redis2_raw_queries $n $cmds; redis2_pass 127.0.0.1:$TEST_NGINX_REDIS_PORT; } --- request GET /pipelined2?n=1&cmds=flushall%0D%0Aget%20key%0D%0A --- response_body eval "+OK\r\n" === TEST 5: redis2_raw_queries (2 queries, larger N arg, bad) --- config redis2_read_timeout 100ms; location /pipelined2 { set_unescape_uri $n $arg_n; set_unescape_uri $cmds $arg_cmds; redis2_raw_queries $n $cmds; redis2_pass 127.0.0.1:$TEST_NGINX_REDIS_PORT; } --- request GET /pipelined2?n=3&cmds=flushall%0D%0Aget%20key%0D%0A --- ignore_response --- no_error_log [alert] [crit] --- error_log eval qr/upstream timed out .*? while reading upstream/ === TEST 6: advanced query (2 pipelined) - keepalive --- http_config upstream backend { server 127.0.0.1:$TEST_NGINX_REDIS_PORT; keepalive 100; } --- config location /a { redis2_query set hello world; redis2_query get hello; redis2_pass backend; } --- request GET /a --- response_body eval "+OK\r\n\$5\r\nworld\r\n"