xref: /redis-3.2.3/tests/unit/quit.tcl (revision 5a4f9f27)
1start_server {tags {"quit"}} {
2    proc format_command {args} {
3        set cmd "*[llength $args]\r\n"
4        foreach a $args {
5            append cmd "$[string length $a]\r\n$a\r\n"
6        }
7        set _ $cmd
8    }
9
10    test "QUIT returns OK" {
11        reconnect
12        assert_equal OK [r quit]
13        assert_error * {r ping}
14    }
15
16    test "Pipelined commands after QUIT must not be executed" {
17        reconnect
18        r write [format_command quit]
19        r write [format_command set foo bar]
20        r flush
21        assert_equal OK [r read]
22        assert_error * {r read}
23
24        reconnect
25        assert_equal {} [r get foo]
26    }
27
28    test "Pipelined commands after QUIT that exceed read buffer size" {
29        reconnect
30        r write [format_command quit]
31        r write [format_command set foo [string repeat "x" 1024]]
32        r flush
33        assert_equal OK [r read]
34        assert_error * {r read}
35
36        reconnect
37        assert_equal {} [r get foo]
38
39    }
40}
41