Modules: add RM_Replicate() Tcl test file & fix the module.
This commit is contained in:
parent
55a3da87f8
commit
1b8b8c029f
@ -13,4 +13,4 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
make -C tests/modules && \
|
make -C tests/modules && \
|
||||||
$TCLSH tests/test_helper.tcl --single unit/moduleapi/commandfilter --single unit/moduleapi/fork --single unit/moduleapi/testrdb --single unit/moduleapi/infotest "${@}"
|
$TCLSH tests/test_helper.tcl --single unit/moduleapi/commandfilter --single unit/moduleapi/fork --single unit/moduleapi/testrdb --single unit/moduleapi/infotest --single unit/moduleapi/propagate "${@}"
|
||||||
|
@ -61,6 +61,7 @@ void timerHandler(RedisModuleCtx *ctx, void *data) {
|
|||||||
void *threadMain(void *arg) {
|
void *threadMain(void *arg) {
|
||||||
REDISMODULE_NOT_USED(arg);
|
REDISMODULE_NOT_USED(arg);
|
||||||
RedisModuleCtx *ctx = RedisModule_GetThreadSafeContext(NULL);
|
RedisModuleCtx *ctx = RedisModule_GetThreadSafeContext(NULL);
|
||||||
|
RedisModule_SelectDb(ctx,9); /* Tests ran in database number 9. */
|
||||||
for (int i = 0; i < 10; i++) {
|
for (int i = 0; i < 10; i++) {
|
||||||
RedisModule_ThreadSafeContextLock(ctx);
|
RedisModule_ThreadSafeContextLock(ctx);
|
||||||
RedisModule_Replicate(ctx,"INCR","c","thread");
|
RedisModule_Replicate(ctx,"INCR","c","thread");
|
||||||
|
30
tests/unit/moduleapi/propagate.tcl
Normal file
30
tests/unit/moduleapi/propagate.tcl
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
set testmodule [file normalize tests/modules/propagate.so]
|
||||||
|
|
||||||
|
tags "modules" {
|
||||||
|
test {Modules can propagate in async and threaded contexts} {
|
||||||
|
start_server {} {
|
||||||
|
set replica [srv 0 client]
|
||||||
|
set replica_host [srv 0 host]
|
||||||
|
set replica_port [srv 0 port]
|
||||||
|
start_server [list overrides [list loadmodule "$testmodule"]] {
|
||||||
|
set master [srv 0 client]
|
||||||
|
set master_host [srv 0 host]
|
||||||
|
set master_port [srv 0 port]
|
||||||
|
|
||||||
|
# Start the replication process...
|
||||||
|
$replica replicaof $master_host $master_port
|
||||||
|
wait_for_sync $replica
|
||||||
|
|
||||||
|
after 1000
|
||||||
|
$master propagate-test
|
||||||
|
|
||||||
|
wait_for_condition 5000 10 {
|
||||||
|
([$replica get timer] eq "10") && \
|
||||||
|
([$replica get thread] eq "10")
|
||||||
|
} else {
|
||||||
|
fail "The two counters don't match the expected value."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user