[PATCH 1/1] mdadm/tests: judge foreign array in test cases

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



It needs to use array name when judging if one array is foreign or not.
So calling is_raid_foreign in test cases which need it.

Fixes: 41706a915684 ('mdadm/tests: names_template enhance')
Signed-off-by: Xiao Ni <xni@xxxxxxxxxx>
---
 tests/03assem-incr             | 2 ++
 tests/06name                   | 2 ++
 tests/07autoassemble           | 3 +++
 tests/func.sh                  | 9 +++++----
 tests/templates/names_template | 2 ++
 5 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/tests/03assem-incr b/tests/03assem-incr
index 21215a34f93b..56afbf2cd7b7 100644
--- a/tests/03assem-incr
+++ b/tests/03assem-incr
@@ -12,6 +12,8 @@ if [ "$LINEAR" == "yes" ]; then
 	levels+=( linear )
 fi
 
+is_raid_foreign $md0
+
 for l in ${levels[@]}
 do
 	mdadm -CR $md0 -l $l -n5 $dev0 $dev1 $dev2 $dev3 $dev4 --assume-clean
diff --git a/tests/06name b/tests/06name
index c3213f6c9f7b..9ec3437bfe5a 100644
--- a/tests/06name
+++ b/tests/06name
@@ -2,6 +2,8 @@ set -x
 
 # create an array with a name
 
+is_raid_foreign $md0
+
 mdadm -CR $md0 -l0 -n2 --metadata=1 --name="Fred" $dev0 $dev1
 
 if [ $is_foreign == "no" ]; then
diff --git a/tests/07autoassemble b/tests/07autoassemble
index 9dc781497070..b6630e171992 100644
--- a/tests/07autoassemble
+++ b/tests/07autoassemble
@@ -2,6 +2,9 @@
 # create two raid1s, build a raid0 on top, then
 # tear it down and get auto-assemble to rebuild it.
 
+#the length of md0/md1/md2 is same. So use md0 here.
+is_raid_foreign $md0
+
 mdadm -CR $md1 -l1 -n2 $dev0 $dev1  --homehost=testing
 mdadm -CR $md2 -l1 -n2 $dev2 $dev3  --homehost=testing
 mdadm -CR $md0 -l0 -n2 $md1 $md2  --homehost=testing
diff --git a/tests/func.sh b/tests/func.sh
index b2e4d122aa7f..284e9a654d6e 100644
--- a/tests/func.sh
+++ b/tests/func.sh
@@ -157,10 +157,12 @@ restore_system_speed_limit() {
 
 is_raid_foreign() {
 
-	# If the length of hostname is >= 32, super1 doesn't use
-	# hostname in metadata
+	name=$1
+	# super1 uses this formula strlen(homehost)+1+strlen(name) < 32
+	# to decide if an array is foreign or local. It adds homehost if
+	# one array is local
 	hostname=$(hostname)
-	if [ `expr length $(hostname)` -lt 32 ]; then
+	if [ `expr length "$(hostname)$name"` -lt 31 ]; then
 		is_foreign="no"
 	else
 		is_foreign="yes"
@@ -255,7 +257,6 @@ do_setup() {
 	[ -f /proc/mdstat ] || modprobe md_mod
 	echo 0 > /sys/module/md_mod/parameters/start_ro
 	record_system_speed_limit
-	is_raid_foreign
 	record_selinux
 }
 
diff --git a/tests/templates/names_template b/tests/templates/names_template
index 88ad5b8c6b38..c94245eaab2a 100644
--- a/tests/templates/names_template
+++ b/tests/templates/names_template
@@ -4,6 +4,8 @@ function names_create() {
 	local NAME=$2
 	local NEG_TEST=$3
 
+	is_raid_foreign $DEVNAME
+
 	if [[ -z "$NAME" ]]; then
 		mdadm -CR "$DEVNAME" -l0 -n 1 $dev0 --force
 	else
-- 
2.32.0 (Apple Git-132)





[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux