Skip to content

Commit

Permalink
Add test to detect issue #137 and #132
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnSully committed Feb 7, 2020
1 parent 1069d0b commit 49d8674
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 4 deletions.
20 changes: 19 additions & 1 deletion src/debug.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -685,8 +685,26 @@ NULL
} else if (!strcasecmp(szFromObj(c->argv[1]),"stringmatch-test") && c->argc == 2) {
stringmatchlen_fuzz_test();
addReplyStatus(c,"Apparently Redis did not crash: test passed");
} else if (!strcasecmp(szFromObj(c->argv[1]), "force-master") && c->argc == 2) {
} else if (!strcasecmp(szFromObj(c->argv[1]), "force-master") && c->argc == 3) {
c->flags |= CLIENT_MASTER | CLIENT_MASTER_FORCE_REPLY;
if (!strcasecmp(szFromObj(c->argv[2]), "yes"))
{
redisMaster *mi = (redisMaster*)zcalloc(sizeof(redisMaster), MALLOC_LOCAL);
mi->master = c;
listAddNodeHead(g_pserver->masters, mi);
}
else if (strcasecmp(szFromObj(c->argv[2]), "flagonly")) // if we didn't set flagonly assume its an unset
{
serverAssert(c->flags & CLIENT_MASTER);
if (listLength(g_pserver->masters))
{
redisMaster *mi = (redisMaster*)listNodeValue(listFirst(g_pserver->masters));
serverAssert(mi->master == c);
listDelNode(g_pserver->masters, listFirst(g_pserver->masters));
zfree(mi);
}
c->flags &= ~(CLIENT_MASTER | CLIENT_MASTER_FORCE_REPLY);
}
addReply(c, shared.ok);
} else {
addReplySubcommandSyntaxError(c);
Expand Down
2 changes: 2 additions & 0 deletions tests/integration/replication.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -309,3 +309,5 @@ start_server {tags {"repl"}} {
}
}
}


1 change: 1 addition & 0 deletions tests/test_helper.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ set ::all_tests {
unit/acl
unit/rreplay
unit/cron
unit/replication
integration/block-repl
integration/replication
integration/replication-2
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/rreplay.tcl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
start_server {tags {"rreplay"}} {
start_server {tags {"rreplay"} overrides {active-replica yes}} {

test {RREPLAY use current db} {
r debug force-master
r debug force-master flagonly
r select 4
r set dbnum invalid
r rreplay "f4d5b2b5-4f07-4ee5-a4f2-5dc98507dfce" "*3\r\n\$3\r\nSET\r\n\$5\r\ndbnum\r\n\$4\r\nfour\r\n"
Expand All @@ -10,7 +10,7 @@ start_server {tags {"rreplay"}} {
reconnect

test {RREPLAY db different} {
r debug force-master
r debug force-master flagonly
r select 4
r set testkey four
r rreplay "f4d5b2b5-4f07-4ee5-a4f2-5dc98507dfce" "*3\r\n\$3\r\nSET\r\n\$7\r\ntestkey\r\n\$4\r\nbebe\r\n" 2
Expand Down

0 comments on commit 49d8674

Please sign in to comment.