
We currently has two disjoint TCL frameworks: 1. Normal testing framework, which trigger by runtest, which individually launches nodes for testing. 2. Cluster framework, which trigger by runtest-cluster, which pre-allocates N nodes and uses them for testing large configurations. The normal TCL testing framework is much more readily tested and is also automatically run as part of the CI for new PRs. The runtest-cluster since it runs very slowly (cannot be parallelized), it currently only runs in daily CI, this results in some changes to the cluster not being exposed in PR CI in time. This PR migrate the Cluster mode tests to normal framework. Some cluster tests are kept in runtest-cluster because of timing issues or not yet supported, we can process them later. Signed-off-by: Binbin <binloveplay1314@qq.com>
58 lines
1.4 KiB
Tcl
58 lines
1.4 KiB
Tcl
# Tests for many simultaneous migrations.
|
|
|
|
source tests/support/cluster_util.tcl
|
|
|
|
# TODO: This test currently runs without replicas, as failovers (which may
|
|
# happen on lower-end CI platforms) are still not handled properly by the
|
|
# cluster during slot migration (related to #6339).
|
|
|
|
start_cluster 10 0 {tags {external:skip cluster}} {
|
|
config_set_all_nodes cluster-allow-replica-migration no
|
|
|
|
test "Cluster is up" {
|
|
wait_for_cluster_state ok
|
|
}
|
|
|
|
set cluster [valkey_cluster 127.0.0.1:[srv 0 port]]
|
|
catch {unset nodefrom}
|
|
catch {unset nodeto}
|
|
|
|
$cluster refresh_nodes_map
|
|
|
|
test "Set many keys" {
|
|
for {set i 0} {$i < 40000} {incr i} {
|
|
$cluster set key:$i val:$i
|
|
}
|
|
}
|
|
|
|
test "Keys are accessible" {
|
|
for {set i 0} {$i < 40000} {incr i} {
|
|
assert { [$cluster get key:$i] eq "val:$i" }
|
|
}
|
|
}
|
|
|
|
test "Init migration of many slots" {
|
|
for {set slot 0} {$slot < 1000} {incr slot} {
|
|
array set nodefrom [$cluster masternode_for_slot $slot]
|
|
array set nodeto [$cluster masternode_notfor_slot $slot]
|
|
|
|
$nodefrom(link) cluster setslot $slot migrating $nodeto(id)
|
|
$nodeto(link) cluster setslot $slot importing $nodefrom(id)
|
|
}
|
|
}
|
|
|
|
test "Fix cluster" {
|
|
wait_for_cluster_propagation
|
|
fix_cluster $nodefrom(addr)
|
|
}
|
|
|
|
test "Keys are accessible" {
|
|
for {set i 0} {$i < 40000} {incr i} {
|
|
assert { [$cluster get key:$i] eq "val:$i" }
|
|
}
|
|
}
|
|
|
|
config_set_all_nodes cluster-allow-replica-migration yes
|
|
|
|
} ;# start_cluster
|