]> git.saurik.com Git - redis.git/blobdiff - test/unit/protocol.tcl
split test suite into multiple files; runs redis-server in isolation
[redis.git] / test / unit / protocol.tcl
diff --git a/test/unit/protocol.tcl b/test/unit/protocol.tcl
new file mode 100644 (file)
index 0000000..28334e3
--- /dev/null
@@ -0,0 +1,41 @@
+start_server default.conf {} {
+    test {Handle an empty query well} {
+        set fd [r channel]
+        puts -nonewline $fd "\r\n"
+        flush $fd
+        r ping
+    } {PONG}
+
+    test {Negative multi bulk command does not create problems} {
+        set fd [r channel]
+        puts -nonewline $fd "*-10\r\n"
+        flush $fd
+        r ping
+    } {PONG}
+
+    test {Negative multi bulk payload} {
+        set fd [r channel]
+        puts -nonewline $fd "SET x -10\r\n"
+        flush $fd
+        gets $fd
+    } {*invalid bulk*}
+
+    test {Too big bulk payload} {
+        set fd [r channel]
+        puts -nonewline $fd "SET x 2000000000\r\n"
+        flush $fd
+        gets $fd
+    } {*invalid bulk*count*}
+
+    test {Multi bulk request not followed by bulk args} {
+        set fd [r channel]
+        puts -nonewline $fd "*1\r\nfoo\r\n"
+        flush $fd
+        gets $fd
+    } {*protocol error*}
+
+    test {Generic wrong number of args} {
+        catch {r ping x y z} err
+        set _ $err
+    } {*wrong*arguments*ping*}
+}