From c7b7439528a9eaf693664fc5c543b19438870e01 Mon Sep 17 00:00:00 2001 From: antirez Date: Tue, 18 Feb 2014 11:53:54 +0100 Subject: [PATCH] Sentinel test: basic tests for MONITOR and auto-discovery. --- tests/sentinel-tests/00-base.tcl | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/sentinel-tests/00-base.tcl b/tests/sentinel-tests/00-base.tcl index 2eb5de34..2bb80e75 100644 --- a/tests/sentinel-tests/00-base.tcl +++ b/tests/sentinel-tests/00-base.tcl @@ -4,6 +4,29 @@ test "Sentinels aren't monitoring any master" { } } -test "Sentinels can start monitoring a master" { +test "Create a master-slaves cluster of 3 instances" { create_redis_master_slave_cluster 3 } + +test "Sentinels can start monitoring a master" { + set sentinels [llength $::sentinel_instances] + set quorum [expr {$sentinels/2+1}] + foreach_sentinel_id id { + S $id SENTINEL MONITOR mymaster [get_instance_attrib redis 0 host] \ + [get_instance_attrib redis 0 port] $quorum + } + foreach_sentinel_id id { + assert {[S $id sentinel master mymaster] ne {}} + } +} + +test "Sentinels are able to auto-discover other sentinels" { + set sentinels [llength $::sentinel_instances] + foreach_sentinel_id id { + wait_for_condition 100 50 { + [dict get [S $id SENTINEL MASTER mymaster] num-other-sentinels] == ($sentinels-1) + } else { + fail "At least some sentinel can't detect some other sentinel" + } + } +}