mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
ce5f4ea3a9
When `RM_ZsetAdd()`/`RM_ZsetIncrby()`/`RM_StreamAdd()` fails, if a new key happens to be created using `moduleCreateEmptyKey()`, we should clean up the empty key. ## Test 1) Add new module commands(`zset.add` and `zset.incrby`) to cover `RM_ZsetAdd()`/`RM_ZsetIncrby()`. 2) Add a large-memory test to cover `RM_StreamAdd()`.
41 lines
1.2 KiB
Tcl
41 lines
1.2 KiB
Tcl
set testmodule [file normalize tests/modules/zset.so]
|
|
|
|
start_server {tags {"modules"}} {
|
|
r module load $testmodule
|
|
|
|
test {Module zset rem} {
|
|
r del k
|
|
r zadd k 100 hello 200 world
|
|
assert_equal 1 [r zset.rem k hello]
|
|
assert_equal 0 [r zset.rem k hello]
|
|
assert_equal 1 [r exists k]
|
|
# Check that removing the last element deletes the key
|
|
assert_equal 1 [r zset.rem k world]
|
|
assert_equal 0 [r exists k]
|
|
}
|
|
|
|
test {Module zset add} {
|
|
r del k
|
|
# Check that failure does not create empty key
|
|
assert_error "ERR ZsetAdd failed" {r zset.add k nan hello}
|
|
assert_equal 0 [r exists k]
|
|
|
|
r zset.add k 100 hello
|
|
assert_equal {hello 100} [r zrange k 0 -1 withscores]
|
|
}
|
|
|
|
test {Module zset incrby} {
|
|
r del k
|
|
# Check that failure does not create empty key
|
|
assert_error "ERR ZsetIncrby failed" {r zset.incrby k hello nan}
|
|
assert_equal 0 [r exists k]
|
|
|
|
r zset.incrby k hello 100
|
|
assert_equal {hello 100} [r zrange k 0 -1 withscores]
|
|
}
|
|
|
|
test "Unload the module - zset" {
|
|
assert_equal {OK} [r module unload zset]
|
|
}
|
|
}
|