X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/01f75bf352b312cacbba2ae30464894c3c44c4c6..2ba962714aaba78921ce18a65628f71f350be460:/tests/unit/sort.tcl?ds=sidebyside diff --git a/tests/unit/sort.tcl b/tests/unit/sort.tcl index 17720454..6c5644a7 100644 --- a/tests/unit/sort.tcl +++ b/tests/unit/sort.tcl @@ -118,6 +118,47 @@ start_server { r sort zset alpha desc } {e d c b a} + test "SORT sorted set BY nosort should retain ordering" { + r del zset + r zadd zset 1 a + r zadd zset 5 b + r zadd zset 2 c + r zadd zset 10 d + r zadd zset 3 e + r multi + r sort zset by nosort asc + r sort zset by nosort desc + r exec + } {{a c e b d} {d b e c a}} + + test "SORT sorted set BY nosort + LIMIT" { + r del zset + r zadd zset 1 a + r zadd zset 5 b + r zadd zset 2 c + r zadd zset 10 d + r zadd zset 3 e + assert_equal [r sort zset by nosort asc limit 0 1] {a} + assert_equal [r sort zset by nosort desc limit 0 1] {d} + assert_equal [r sort zset by nosort asc limit 0 2] {a c} + assert_equal [r sort zset by nosort desc limit 0 2] {d b} + assert_equal [r sort zset by nosort limit 5 10] {} + assert_equal [r sort zset by nosort limit -10 100] {a c e b d} + } + + test "SORT sorted set BY nosort works as expected from scripts" { + r del zset + r zadd zset 1 a + r zadd zset 5 b + r zadd zset 2 c + r zadd zset 10 d + r zadd zset 3 e + r eval { + return {redis.call('sort','zset','by','nosort','asc'), + redis.call('sort','zset','by','nosort','desc')} + } 0 + } {{a c e b d} {d b e c a}} + test "SORT sorted set: +inf and -inf handling" { r del zset r zadd zset -100 a @@ -159,10 +200,10 @@ start_server { test "SORT with BY and STORE should still order output" { r del myset mylist - r sadd myset a b c d e f g h i l m n o p q r s t u v z + r sadd myset a b c d e f g h i l m n o p q r s t u v z aa aaa azz r sort myset alpha by _ store mylist r lrange mylist 0 -1 - } {a b c d e f g h i l m n o p q r s t u v z} + } {a aa aaa azz b c d e f g h i l m n o p q r s t u v z} test "SORT will complain with numerical sorting and bad doubles (1)" { r del myset @@ -183,12 +224,19 @@ start_server { test "SORT BY sub-sorts lexicographically if score is the same" { r del myset - r sadd myset u v z a b c d e f g h i l m n o p q r s t - foreach ele {a b c d e f g h i l m n o p q r s t u v z} { + r sadd myset a b c d e f g h i l m n o p q r s t u v z aa aaa azz + foreach ele {a aa aaa azz b c d e f g h i l m n o p q r s t u v z} { set score:$ele 100 } r sort myset by score:* - } {a b c d e f g h i l m n o p q r s t u v z} + } {a aa aaa azz b c d e f g h i l m n o p q r s t u v z} + + test "SORT GET with pattern ending with just -> does not get hash field" { + r del mylist + r lpush mylist a + r set x:a-> 100 + r sort mylist by num get x:*-> + } {100} tags {"slow"} { set num 100