Skip to content

Commit

Permalink
Redis Cluster test framework skeleton.
Browse files Browse the repository at this point in the history
  • Loading branch information
antirez committed Apr 24, 2014
1 parent 7d9b45b commit c3f85c0
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 0 deletions.
14 changes: 14 additions & 0 deletions runtest-cluster
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh
TCL_VERSIONS="8.5 8.6"
TCLSH=""

for VERSION in $TCL_VERSIONS; do
TCL=`which tclsh$VERSION 2>/dev/null` && TCLSH=$TCL
done

if [ -z $TCLSH ]
then
echo "You need tcl 8.5 or newer in order to run the Redis Sentinel test"
exit 1
fi
$TCLSH tests/cluster/run.tcl $*
7 changes: 7 additions & 0 deletions tests/cluster/cluster.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Cluster-specific test functions.
#
# Copyright (C) 2014 Salvatore Sanfilippo [email protected]
# This softare is released under the BSD License. See the COPYING file for
# more information.


22 changes: 22 additions & 0 deletions tests/cluster/run.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Cluster test suite. Copyright (C) 2014 Salvatore Sanfilippo [email protected]
# This softare is released under the BSD License. See the COPYING file for
# more information.

cd tests/cluster
source cluster.tcl
source ../instances.tcl

proc main {} {
parse_options
spawn_instance redis $::redis_base_port $::instances_count {
"cluster-enabled yes"
"appendonly yes"
}
run_tests
cleanup
}

if {[catch main e]} {
puts $::errorInfo
cleanup
}
16 changes: 16 additions & 0 deletions tests/cluster/tests/00-base.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Check the basic monitoring and failover capabilities.

source "../tests/includes/init-tests.tcl"

if {$::simulate_error} {
test "This test will fail" {
fail "Simulated error"
}
}

test "Cluster nodes are reachable." {
foreach_redis_id id {
# Every node should just know itself.
assert {[R $id ping] eq {PONG}}
}
}
13 changes: 13 additions & 0 deletions tests/cluster/tests/includes/init-tests.tcl
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Initialization tests -- most units will start including this.

test "(init) Restart killed instances" {
foreach type {redis} {
foreach_${type}_id id {
if {[get_instance_attrib $type $id pid] == -1} {
puts -nonewline "$type/$id "
flush stdout
restart_instance $type $id
}
}
}
}

0 comments on commit c3f85c0

Please sign in to comment.