mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-23 16:48:27 -05:00
3b6aeea44c
Other changes: * fix memory leak in error handling of rdb loading of type OBJ_MODULE
63 lines
1.8 KiB
Tcl
63 lines
1.8 KiB
Tcl
set testmodule [file normalize tests/modules/testrdb.so]
|
|
|
|
proc restart_and_wait {} {
|
|
catch {
|
|
r debug restart
|
|
}
|
|
|
|
# wait for the server to come back up
|
|
set retry 50
|
|
while {$retry} {
|
|
if {[catch { r ping }]} {
|
|
after 100
|
|
} else {
|
|
break
|
|
}
|
|
incr retry -1
|
|
}
|
|
}
|
|
|
|
tags "modules" {
|
|
start_server [list overrides [list loadmodule "$testmodule"]] {
|
|
test {modules are able to persist types} {
|
|
r testrdb.set.key key1 value1
|
|
assert_equal "value1" [r testrdb.get.key key1]
|
|
r debug reload
|
|
assert_equal "value1" [r testrdb.get.key key1]
|
|
}
|
|
|
|
test {modules global are lost without aux} {
|
|
r testrdb.set.before global1
|
|
assert_equal "global1" [r testrdb.get.before]
|
|
restart_and_wait
|
|
assert_equal "" [r testrdb.get.before]
|
|
}
|
|
}
|
|
|
|
start_server [list overrides [list loadmodule "$testmodule 2"]] {
|
|
test {modules are able to persist globals before and after} {
|
|
r testrdb.set.before global1
|
|
r testrdb.set.after global2
|
|
assert_equal "global1" [r testrdb.get.before]
|
|
assert_equal "global2" [r testrdb.get.after]
|
|
restart_and_wait
|
|
assert_equal "global1" [r testrdb.get.before]
|
|
assert_equal "global2" [r testrdb.get.after]
|
|
}
|
|
|
|
}
|
|
|
|
start_server [list overrides [list loadmodule "$testmodule 1"]] {
|
|
test {modules are able to persist globals just after} {
|
|
r testrdb.set.after global2
|
|
assert_equal "global2" [r testrdb.get.after]
|
|
restart_and_wait
|
|
assert_equal "global2" [r testrdb.get.after]
|
|
}
|
|
}
|
|
|
|
|
|
# TODO: test short read handling
|
|
|
|
}
|