-
Notifications
You must be signed in to change notification settings - Fork 702
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Sharded pubsub command execution within multi/exec (#13)
Allow SPUBLISH command within multi/exec on replica.
- Loading branch information
Showing
2 changed files
with
64 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
start_cluster 1 1 {tags {external:skip cluster}} { | ||
set primary_id 0 | ||
set replica1_id 1 | ||
|
||
set primary [Rn $primary_id] | ||
set replica [Rn $replica1_id] | ||
|
||
test "Sharded pubsub publish behavior within multi/exec" { | ||
foreach {node} {primary replica} { | ||
set node [set $node] | ||
$node MULTI | ||
$node SPUBLISH ch1 "hello" | ||
$node EXEC | ||
} | ||
} | ||
|
||
test "Sharded pubsub within multi/exec with cross slot operation" { | ||
$primary MULTI | ||
$primary SPUBLISH ch1 "hello" | ||
$primary GET foo | ||
catch {[$primary EXEC]} err | ||
assert_match {CROSSSLOT*} $err | ||
} | ||
|
||
test "Sharded pubsub publish behavior within multi/exec with read operation on primary" { | ||
$primary MULTI | ||
$primary SPUBLISH foo "hello" | ||
$primary GET foo | ||
$primary EXEC | ||
} {0 {}} | ||
|
||
test "Sharded pubsub publish behavior within multi/exec with read operation on replica" { | ||
$replica MULTI | ||
$replica SPUBLISH foo "hello" | ||
catch {[$replica GET foo]} err | ||
assert_match {MOVED*} $err | ||
catch {[$replica EXEC]} err | ||
assert_match {EXECABORT*} $err | ||
} | ||
|
||
test "Sharded pubsub publish behavior within multi/exec with write operation on primary" { | ||
$primary MULTI | ||
$primary SPUBLISH foo "hello" | ||
$primary SET foo bar | ||
$primary EXEC | ||
} {0 OK} | ||
|
||
test "Sharded pubsub publish behavior within multi/exec with write operation on replica" { | ||
$replica MULTI | ||
$replica SPUBLISH foo "hello" | ||
catch {[$replica SET foo bar]} err | ||
assert_match {MOVED*} $err | ||
catch {[$replica EXEC]} err | ||
assert_match {EXECABORT*} $err | ||
} | ||
} |