From c20c189db50f331786846c821c863b44aea5e006 Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 25 May 2010 14:04:46 +0200 Subject: [PATCH] WATCH tests --- tests/test_helper.tcl | 2 ++ tests/unit/cas.tcl | 66 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/unit/cas.tcl diff --git a/tests/test_helper.tcl b/tests/test_helper.tcl index 1b6d161a..035f013b 100644 --- a/tests/test_helper.tcl +++ b/tests/test_helper.tcl @@ -67,6 +67,7 @@ proc main {} { execute_tests "unit/sort" execute_tests "unit/expire" execute_tests "unit/other" + execute_tests "unit/cas" execute_tests "integration/replication" execute_tests "integration/aof" @@ -81,6 +82,7 @@ proc main {} { execute_tests "unit/sort" execute_tests "unit/expire" execute_tests "unit/other" + execute_tests "unit/cas" puts "\n[expr $::passed+$::failed] tests, $::passed passed, $::failed failed" if {$::failed > 0} { diff --git a/tests/unit/cas.tcl b/tests/unit/cas.tcl new file mode 100644 index 00000000..5184391d --- /dev/null +++ b/tests/unit/cas.tcl @@ -0,0 +1,66 @@ +start_server default.conf {} { + test {EXEC works on WATCHed key not modified} { + r watch x y z + r watch k + r multi + r ping + r exec + } {PONG} + + test {EXEC fail on WATCHed key modified (1 key of 1 watched)} { + r set x 30 + r watch x + r set x 40 + r multi + r ping + r exec + } {} + + test {EXEC fail on WATCHed key modified (1 key of 5 watched)} { + r set x 30 + r watch a b x k z + r set x 40 + r multi + r ping + r exec + } {} + + test {After successful EXEC key is no longer watched} { + r set x 30 + r watch x + r multi + r ping + r exec + r set x 40 + r multi + r ping + r exec + } {PONG} + + test {After failed EXEC key is no longer watched} { + r set x 30 + r watch x + r set x 40 + r multi + r ping + r exec + r set x 40 + r multi + r ping + r exec + } {PONG} + + test {It is possible to UNWATCH} { + r set x 30 + r watch x + r set x 40 + r unwatch + r multi + r ping + r exec + } {PONG} + + test {UNWATCH when there is nothing watched works as expected} { + r unwatch + } {OK} +} -- GitLab