summaryrefslogtreecommitdiff
path: root/tests/unit/type/list.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/type/list.tcl')
-rw-r--r--tests/unit/type/list.tcl17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/unit/type/list.tcl b/tests/unit/type/list.tcl
index 61ca23377..9be5dd93b 100644
--- a/tests/unit/type/list.tcl
+++ b/tests/unit/type/list.tcl
@@ -123,6 +123,17 @@ start_server {
test {R/LPOP against empty list} {
r lpop non-existing-list
} {}
+
+ test {R/LPOP with the optional count argument} {
+ assert_equal 7 [r lpush listcount aa bb cc dd ee ff gg]
+ assert_equal {} [r lpop listcount 0]
+ assert_equal {gg} [r lpop listcount 1]
+ assert_equal {ff ee} [r lpop listcount 2]
+ assert_equal {aa bb} [r rpop listcount 2]
+ assert_equal {cc} [r rpop listcount 1]
+ assert_equal {dd} [r rpop listcount 123]
+ assert_error "*ERR*range*" {r lpop forbarqaz -123}
+ }
test {Variadic RPUSH/LPUSH} {
r del mylist
@@ -947,6 +958,12 @@ start_server {
assert_equal {} [r lrange nosuchkey 0 1]
}
+ test {LRANGE with start > end yields an empty array for backward compatibility} {
+ create_list mylist "1 2 3"
+ assert_equal {} [r lrange mylist 1 0]
+ assert_equal {} [r lrange mylist -1 -2]
+ }
+
foreach {type large} [array get largevalue] {
proc trim_list {type min max} {
upvar 1 large large