1 start_server
{tags
{"repl"}} {
3 test
{First server should have role slave
after SLAVEOF
} {
4 r
-1 slaveof
[srv
0 host
] [srv
0 port
]
9 test
{BRPOPLPUSH replication
, when blocking against empty
list} {
10 set rd
[redis_deferring_client
]
14 assert_equal
[r debug digest
] [r
-1 debug digest
]
17 test
{BRPOPLPUSH replication
, list exists
} {
18 set rd
[redis_deferring_client
]
24 assert_equal
[r debug digest
] [r
-1 debug digest
]
27 test
{MASTER and SLAVE dataset should be identical
after complex ops
} {
28 createComplexDataset r
10000
30 if {[r debug digest
] ne
[r
-1 debug digest
]} {
32 set csv2
[csvdump
{r
-1}]
33 set fd
[open /tmp
/repldump1.txt w
]
34 puts -nonewline $fd $csv1
36 set fd
[open /tmp
/repldump2.txt w
]
37 puts -nonewline $fd $csv2
39 puts "Master - Slave inconsistency"
40 puts "Run diff -u against /tmp/repldump*.txt for more info"
42 assert_equal
[r debug digest
] [r
-1 debug digest
]
45 test
{MASTER and SLAVE consistency with expire
} {
46 createComplexDataset r
50000 useexpire
47 after 4000 ;# Make sure everything expired before taking the digest
48 r keys
* ;# Force DEL syntesizing to slave
49 after 1000 ;# Wait another second. Now everything should be fine.
50 if {[r debug digest
] ne
[r
-1 debug digest
]} {
52 set csv2
[csvdump
{r
-1}]
53 set fd
[open /tmp
/repldump1.txt w
]
54 puts -nonewline $fd $csv1
56 set fd
[open /tmp
/repldump2.txt w
]
57 puts -nonewline $fd $csv2
59 puts "Master - Slave inconsistency"
60 puts "Run diff -u against /tmp/repldump*.txt for more info"
62 assert_equal
[r debug digest
] [r
-1 debug digest
]
67 start_server
{tags
{"repl"}} {
71 test
{Second server should have role master at first
} {
75 test
{SLAVEOF should start with link status
"down"} {
76 r slaveof
[srv
-1 host
] [srv
-1 port
]
80 test
{The role should immediately be changed to
"slave"} {
85 test
{Sync should have transferred keys from master
} {
89 test
{The link status should be up
} {
93 test
{SET on the master should immediately propagate
} {