diff mbox series

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

Message ID 20240614024501.10832-1-xni@redhat.com (mailing list archive)
State Accepted
Headers show
Series [1/1] mdadm/tests: judge foreign array in test cases | expand

Checks

Context Check Description
mdraidci/vmtest-md-6_11-VM_Test-0 success Logs for build-kernel
mdraidci/vmtest-md-6_11-PR success PR summary

Commit Message

Xiao Ni June 14, 2024, 2:45 a.m. UTC
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@redhat.com>
---
 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(-)

Comments

Mariusz Tkaczyk June 20, 2024, 11:41 a.m. UTC | #1
On Fri, 14 Jun 2024 10:45:01 +0800
Xiao Ni <xni@redhat.com> wrote:

> 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@redhat.com>
> ---

Applied! 

Thanks,
Mariusz
diff mbox series

Patch

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