summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2014-05-19 11:24:05 +0200
committerantirez <antirez@gmail.com>2014-05-19 11:24:15 +0200
commit4c04744734098576f884aa7ee3dfc64cd856043d (patch)
treec71c9619858699b981f1f54fbd57a30b847cf389
parent67133d2f4882da652fd3e78ba15220bce2488d05 (diff)
downloadredis-4c04744734098576f884aa7ee3dfc64cd856043d.tar.gz
Cluster test: proper initialization at unit startup.
-rw-r--r--tests/cluster/tests/00-base.tcl33
-rw-r--r--tests/cluster/tests/includes/init-tests.tcl40
-rw-r--r--tests/instances.tcl2
3 files changed, 41 insertions, 34 deletions
diff --git a/tests/cluster/tests/00-base.tcl b/tests/cluster/tests/00-base.tcl
index 5048aa230..2c6585970 100644
--- a/tests/cluster/tests/00-base.tcl
+++ b/tests/cluster/tests/00-base.tcl
@@ -8,13 +8,6 @@ if {$::simulate_error} {
}
}
-test "Cluster nodes are reachable" {
- foreach_redis_id id {
- # Every node should just know itself.
- assert {[R $id ping] eq {PONG}}
- }
-}
-
test "Different nodes have different IDs" {
set ids {}
set numnodes 0
@@ -29,32 +22,6 @@ test "Different nodes have different IDs" {
assert {$numids == $numnodes}
}
-test "Check if nodes auto-discovery works" {
- # Join node 0 with 1, 1 with 2, ... and so forth.
- # If auto-discovery works all nodes will know every other node
- # eventually.
- set ids {}
- foreach_redis_id id {lappend ids $id}
- for {set j 0} {$j < [expr [llength $ids]-1]} {incr j} {
- set a [lindex $ids $j]
- set b [lindex $ids [expr $j+1]]
- set b_port [get_instance_attrib redis $b port]
- R $a cluster meet 127.0.0.1 $b_port
- }
-
- foreach_redis_id id {
- wait_for_condition 1000 50 {
- [llength [get_cluster_nodes $id]] == [llength $ids]
- } else {
- fail "Cluster failed to join into a full mesh."
- }
- }
-}
-
-test "Before slots allocation, all nodes report cluster failure" {
- assert_cluster_state fail
-}
-
test "It is possible to perform slot allocation" {
cluster_allocate_slots 5
}
diff --git a/tests/cluster/tests/includes/init-tests.tcl b/tests/cluster/tests/includes/init-tests.tcl
index e3d5471d3..849dba23d 100644
--- a/tests/cluster/tests/includes/init-tests.tcl
+++ b/tests/cluster/tests/includes/init-tests.tcl
@@ -11,3 +11,43 @@ test "(init) Restart killed instances" {
}
}
}
+
+test "Cluster nodes are reachable" {
+ foreach_redis_id id {
+ # Every node should just know itself.
+ assert {[R $id ping] eq {PONG}}
+ }
+}
+
+test "Cluster nodes hard reset" {
+ foreach_redis_id id {
+ R $id flushall
+ R $id cluster reset hard
+ }
+}
+
+test "Cluster Join and auto-discovery test" {
+ # Join node 0 with 1, 1 with 2, ... and so forth.
+ # If auto-discovery works all nodes will know every other node
+ # eventually.
+ set ids {}
+ foreach_redis_id id {lappend ids $id}
+ for {set j 0} {$j < [expr [llength $ids]-1]} {incr j} {
+ set a [lindex $ids $j]
+ set b [lindex $ids [expr $j+1]]
+ set b_port [get_instance_attrib redis $b port]
+ R $a cluster meet 127.0.0.1 $b_port
+ }
+
+ foreach_redis_id id {
+ wait_for_condition 1000 50 {
+ [llength [get_cluster_nodes $id]] == [llength $ids]
+ } else {
+ fail "Cluster failed to join into a full mesh."
+ }
+ }
+}
+
+test "Before slots allocation, all nodes report cluster failure" {
+ assert_cluster_state fail
+}
diff --git a/tests/instances.tcl b/tests/instances.tcl
index 4575c8388..34c59a11c 100644
--- a/tests/instances.tcl
+++ b/tests/instances.tcl
@@ -363,7 +363,7 @@ proc kill_instance {type id} {
# Return true of the instance of the specified type/id is killed.
proc instance_is_killed {type id} {
set pid [get_instance_attrib $type $id pid]
- return $pid == -1
+ expr {$pid == -1}
}
# Restart an instance previously killed by kill_instance