aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSong Liu <song@kernel.org>2024-01-09 15:07:16 -0800
committerMariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>2024-01-16 12:03:27 +0100
commit64a4fcb4c2b91d18955752e76517dee2d17b1647 (patch)
treecc7cb06d4afb40889720d129540f4b037e0ba17f
parent582945c2d3bbead4a71de521a392e292a4a84e24 (diff)
downloadmdadm-test-64a4fcb4c2b91d18955752e76517dee2d17b1647.tar.gz
tests: Gate tests for linear flavor with variable LINEAR
linear flavor is being removed in the kernel [1], so tests for the linear flavor will fail. Add detection for linear flavor and --disable-linear option, with the same logic as multipath. [1] https://lore.kernel.org/linux-raid/20231214222107.2016042-1-song@kernel.org/ Signed-off-by: Song Liu <song@kernel.org> Signed-off-by: Mariusz Tkaczyk <mariusz.tkaczyk@linux.intel.com>
-rwxr-xr-xtest4
-rw-r--r--tests/00linear5
-rw-r--r--tests/00names8
-rw-r--r--tests/00raid04
-rw-r--r--tests/00readonly8
-rw-r--r--tests/02lineargrow5
-rw-r--r--tests/03assem-incr8
-rw-r--r--tests/03r0assem4
-rw-r--r--tests/04r0update6
-rw-r--r--tests/func.sh11
10 files changed, 60 insertions, 3 deletions
diff --git a/test b/test
index b244453b..49a36c3b 100755
--- a/test
+++ b/test
@@ -140,6 +140,7 @@ do_help() {
--raidtype= raid0|linear|raid1|raid456|raid10|ddf|imsm
--disable-multipath Disable any tests involving multipath
--disable-integrity Disable slow tests of RAID[56] consistency
+ --disable-linear Disable any tests involving linear
--logdir=directory Directory to save all logfiles in
--save-logs Usually use with --logdir together
--keep-going | --no-error Don't stop on error, ie. run all tests
@@ -255,6 +256,9 @@ parse_args() {
--disable-integrity )
unset INTEGRITY
;;
+ --disable-linear )
+ unset LINEAR
+ ;;
--dev=* )
case ${i##*=} in
loop )
diff --git a/tests/00linear b/tests/00linear
index e3ac6555..5a116085 100644
--- a/tests/00linear
+++ b/tests/00linear
@@ -1,6 +1,11 @@
# create a simple linear
+if [ "$LINEAR" != "yes" ]; then
+ echo -ne 'skipping... '
+ exit 0
+fi
+
mdadm -CR $md0 -l linear -n3 $dev0 $dev1 $dev2
check linear
testdev $md0 3 $mdsize2_l 1
diff --git a/tests/00names b/tests/00names
index 7a066d8f..d996befc 100644
--- a/tests/00names
+++ b/tests/00names
@@ -4,7 +4,13 @@ set -x -e
conf=$targetdir/mdadm.conf
echo "CREATE names=yes" > $conf
-for i in linear raid0 raid1 raid4 raid5 raid6
+levels=(raid0 raid1 raid4 raid5 raid6)
+
+if [ "$LINEAR" == "yes" ]; then
+ levels+=( linear )
+fi
+
+for i in ${levels[@]}
do
mdadm -CR --config $conf /dev/md/$i -l $i -n 4 $dev4 $dev3 $dev2 $dev1
check $i
diff --git a/tests/00raid0 b/tests/00raid0
index 9b8896cb..6407c320 100644
--- a/tests/00raid0
+++ b/tests/00raid0
@@ -16,6 +16,10 @@ check raid0
testdev $md0 5 $size 512
mdadm -S $md0
+if [ "$LINEAR" != "yes" ]; then
+ echo -ne 'skipping... '
+ exit 0
+fi
# now same again with different chunk size
for chunk in 4 32 256
diff --git a/tests/00readonly b/tests/00readonly
index afe243b3..80b63629 100644
--- a/tests/00readonly
+++ b/tests/00readonly
@@ -1,8 +1,14 @@
#!/bin/bash
+levels=(raid0 raid1 raid4 raid5 raid6 raid10)
+
+if [ "$LINEAR" == "yes" ]; then
+ levels+=( linear )
+fi
+
for metadata in 0.9 1.0 1.1 1.2
do
- for level in linear raid0 raid1 raid4 raid5 raid6 raid10
+ for level in ${levels[@]}
do
if [[ $metadata == "0.9" && $level == "raid0" ]];
then
diff --git a/tests/02lineargrow b/tests/02lineargrow
index 595bf9f2..d17e2326 100644
--- a/tests/02lineargrow
+++ b/tests/02lineargrow
@@ -1,6 +1,11 @@
# create a liner array, and add more drives to to.
+if [ "$LINEAR" != "yes" ]; then
+ echo -ne 'skipping... '
+ exit 0
+fi
+
for e in 0.90 1 1.1 1.2
do
case $e in
diff --git a/tests/03assem-incr b/tests/03assem-incr
index f10a1a48..38880a7f 100644
--- a/tests/03assem-incr
+++ b/tests/03assem-incr
@@ -6,7 +6,13 @@ set -x -e
# Here just test that a partly "-I" assembled array can
# be completed with "-A"
-for l in 0 1 5 linear
+levels=(raid0 raid1 raid5)
+
+if [ "$LINEAR" == "yes" ]; then
+ levels+=( linear )
+fi
+
+for l in ${levels[@]}
do
mdadm -CR $md0 -l $l -n5 $dev0 $dev1 $dev2 $dev3 $dev4 --assume-clean
mdadm -S md0
diff --git a/tests/03r0assem b/tests/03r0assem
index 44df0645..f7c29e8c 100644
--- a/tests/03r0assem
+++ b/tests/03r0assem
@@ -64,6 +64,10 @@ mdadm --assemble --scan --config=$conf $md2
$tst
mdadm -S $md2
+if [ "$LINEAR" != "yes" ]; then
+ echo -ne 'skipping... '
+ exit 0
+fi
### Now for version 0...
diff --git a/tests/04r0update b/tests/04r0update
index b95efb06..c495f34a 100644
--- a/tests/04r0update
+++ b/tests/04r0update
@@ -1,5 +1,11 @@
# create a raid0, re-assemble with a different super-minor
+
+if [ "$LINEAR" != "yes" ]; then
+ echo -ne 'skipping... '
+ exit 0
+fi
+
mdadm -CR -e 0.90 $md0 -llinear -n3 $dev0 $dev1 $dev2
testdev $md0 3 $mdsize0 1
minor1=`mdadm -E $dev0 | sed -n -e 's/.*Preferred Minor : //p'`
diff --git a/tests/func.sh b/tests/func.sh
index 5053b012..1c1a28a2 100644
--- a/tests/func.sh
+++ b/tests/func.sh
@@ -123,6 +123,17 @@ check_env() {
modprobe multipath 2> /dev/null
grep -sq 'Personalities : .*multipath' /proc/mdstat &&
MULTIPATH="yes"
+ if [ "$MULTIPATH" != "yes" ]; then
+ echo "test: skipping tests for multipath, which is removed in upstream 6.8+ kernels"
+ fi
+
+ # Check whether to run linear tests
+ modprobe linear 2> /dev/null
+ grep -sq 'Personalities : .*linear' /proc/mdstat &&
+ LINEAR="yes"
+ if [ "$LINEAR" != "yes" ]; then
+ echo "test: skipping tests for linear, which is removed in upstream 6.8+ kernels"
+ fi
}
do_setup() {