[sheepdog] [PATCH v6 5/6] tests/functional: add 068 for testing rejoin cluster

Kai Zhang kyle at zelin.io
Fri Jun 21 14:34:43 CEST 2013


Signed-off-by: Kai Zhang <kyle at zelin.io>
---
 tests/functional/068       |   46 ++++++++++++++++++++++++++++++++++++++++++++
 tests/functional/068.out   |   38 ++++++++++++++++++++++++++++++++++++
 tests/functional/common.rc |   15 +++++++++++++++
 tests/functional/group     |    1 +
 4 files changed, 100 insertions(+)
 create mode 100755 tests/functional/068
 create mode 100644 tests/functional/068.out

diff --git a/tests/functional/068 b/tests/functional/068
new file mode 100755
index 0000000..a6699ec
--- /dev/null
+++ b/tests/functional/068
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# Test rejoin cluster
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1        # failure is the default!
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+_cleanup
+
+for i in 0 1 2; do
+    _start_sheep $i
+done
+
+_wait_for_sheep 3
+
+$COLLIE cluster format
+sleep 1
+
+# kill a non-master sheep
+_kill_zk_session 1
+
+# wait for rejoin
+sleep 5
+
+# kill a master
+_kill_zk_session 0
+
+# wait for rejoin
+sleep 5
+
+for i in 0 1 2; do
+    $COLLIE cluster info -p 700$i | _filter_cluster_info
+done
+
+$COLLIE vdi create test 10M
+for i in 0 1 2; do
+    $COLLIE vdi list | _filter_short_date
+done
diff --git a/tests/functional/068.out b/tests/functional/068.out
new file mode 100644
index 0000000..e275e49
--- /dev/null
+++ b/tests/functional/068.out
@@ -0,0 +1,38 @@
+QA output created by 068
+using backend plain store
+Cluster status: running, auto-recovery enabled
+
+Cluster created at DATE
+
+Epoch Time           Version
+DATE      5 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      4 [127.0.0.1:7001, 127.0.0.1:7002]
+DATE      3 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      2 [127.0.0.1:7000, 127.0.0.1:7002]
+DATE      1 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+Cluster status: running, auto-recovery enabled
+
+Cluster created at DATE
+
+Epoch Time           Version
+DATE      5 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      4 [127.0.0.1:7001, 127.0.0.1:7002]
+DATE      3 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      2 [127.0.0.1:7000, 127.0.0.1:7002]
+DATE      1 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+Cluster status: running, auto-recovery enabled
+
+Cluster created at DATE
+
+Epoch Time           Version
+DATE      5 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      4 [127.0.0.1:7001, 127.0.0.1:7002]
+DATE      3 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+DATE      2 [127.0.0.1:7000, 127.0.0.1:7002]
+DATE      1 [127.0.0.1:7000, 127.0.0.1:7001, 127.0.0.1:7002]
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
+  test         0   10 MB  0.0 MB  0.0 MB DATE   7c2b25     3              
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
+  test         0   10 MB  0.0 MB  0.0 MB DATE   7c2b25     3              
+  Name        Id    Size    Used  Shared    Creation time   VDI id  Copies  Tag
+  test         0   10 MB  0.0 MB  0.0 MB DATE   7c2b25     3              
diff --git a/tests/functional/common.rc b/tests/functional/common.rc
index 4b45701..52a7e75 100644
--- a/tests/functional/common.rc
+++ b/tests/functional/common.rc
@@ -465,5 +465,20 @@ _random()
 	openssl enc -aes-128-cbc -pass pass:"$(date)" -nosalt < /dev/zero 2>/dev/null
 }
 
+_kill_zk_session()
+{
+	local path="/sheepdog/member/IPv4 ip:127.0.0.1 port:700$1"
+	if [[ "$DRIVER" == zoo* ]]; then
+		../../tools/kill_zk_session "$path"
+		if [ $? -ne 0 ]; then
+			_die "failed to kill session"
+		fi
+	else
+		_kill_sheep $1
+		_wait_for_sheep_stop $1
+		_start_sheep $1
+	fi
+}
+
 # make sure this script returns success
 /bin/true
diff --git a/tests/functional/group b/tests/functional/group
index fbe091b..ab34281 100644
--- a/tests/functional/group
+++ b/tests/functional/group
@@ -81,3 +81,4 @@
 065 auto quick cluster md
 066 auto quick cluster md
 067 auto quick cluster
+068 auto quick cluster
-- 
1.7.9.5




More information about the sheepdog mailing list