123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- source "../tests/includes/init-tests.tcl"
- proc cluster_allocate_mixedSlots {n} {
- set slot 16383
- while {$slot >= 0} {
- set node [expr {$slot % $n}]
- lappend slots_$node $slot
- incr slot -1
- }
- for {set j 0} {$j < $n} {incr j} {
- R $j cluster addslots {*}[set slots_${j}]
- }
- }
- proc create_cluster_with_mixedSlot {masters slaves} {
- cluster_allocate_mixedSlots $masters
- if {$slaves} {
- cluster_allocate_slaves $masters $slaves
- }
- assert_cluster_state ok
- }
- test "Create a 5 nodes cluster" {
- create_cluster_with_mixedSlot 5 15
- }
- test "Cluster is up" {
- assert_cluster_state ok
- }
- test "Cluster is writable" {
- cluster_write_test 0
- }
- test "Instance #5 is a slave" {
- assert {[RI 5 role] eq {slave}}
- }
- test "client do not break when cluster slot" {
- R 0 config set client-output-buffer-limit "normal 33554432 16777216 60"
- if { [catch {R 0 cluster slots}] } {
- fail "output overflow when cluster slots"
- }
- }
- test "client can handle keys with hash tag" {
- set cluster [redis_cluster 127.0.0.1:[get_instance_attrib redis 0 port]]
- $cluster set foo{tag} bar
- $cluster close
- }
- if {$::tls} {
- test {CLUSTER SLOTS from non-TLS client in TLS cluster} {
- set slots_tls [R 0 cluster slots]
- set host [get_instance_attrib redis 0 host]
- set plaintext_port [get_instance_attrib redis 0 plaintext-port]
- set client_plain [redis $host $plaintext_port 0 0]
- set slots_plain [$client_plain cluster slots]
- $client_plain close
- # Compare the ports in the first row
- assert_no_match [lindex $slots_tls 0 3 1] [lindex $slots_plain 0 3 1]
- }
- }
|