* [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 02/13] mdadm/test: did basic improvement for 00names Zhilong Liu
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
md->raid10_resize(): Resize of 'far' arrays is not supported.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 mdadm.8.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mdadm.8.in b/mdadm.8.in
index f0fd1fc..270781c 100644
--- a/mdadm.8.in
+++ b/mdadm.8.in
@@ -2761,7 +2761,7 @@ can be changed. Once the change is complete a new bitmap can be created.
 .PP
 Note:
 .B "--grow --size"
-is not yet supported for external file bitmap.
+is not yet supported for external file bitmap and 'far' mode of raid10.
 
 .SS RAID\-DEVICES CHANGES
 
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 02/13] mdadm/test: did basic improvement for 00names
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
  2017-12-01  9:48 ` [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 03/13] mdadm/test: redraft the 00raid1 test case Zhilong Liu
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
1. clean the code style
2. add raid10 in test
3. delete the temp file once finish testing.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00names | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/tests/00names b/tests/00names
index 7a066d8..d0ee3e9 100644
--- a/tests/00names
+++ b/tests/00names
@@ -4,10 +4,13 @@ set -x -e
 conf=$targetdir/mdadm.conf
 echo "CREATE names=yes" > $conf
 
-for i in linear raid0 raid1 raid4 raid5 raid6
+for i in linear raid0 raid1 raid4 raid5 raid6 raid10
 do
-  mdadm -CR --config $conf /dev/md/$i -l $i -n 4 $dev4 $dev3 $dev2 $dev1
-  check $i
-  [ -d /sys/class/block/md_$i/md ]
-  mdadm -S md_$i
+	mdadm -CR --config $conf /dev/md/$i -l $i -n 4 $dev4 $dev3 $dev2 $dev1
+	check $i
+	[ -d /sys/class/block/md_$i/md ] || exit 1
+	mdadm -S md_$i
 done
+rm $conf
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 03/13] mdadm/test: redraft the 00raid1 test case
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
  2017-12-01  9:48 ` [PATCH 01/13] mdadm/manpage: raid10 doesn't support resize 'far' arrays Zhilong Liu
  2017-12-01  9:48 ` [PATCH 02/13] mdadm/test: did basic improvement for 00names Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 04/13] mdadm/test: redraft 00raid4 " Zhilong Liu
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
Make it cover different metadata version and
bitmap.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00raid1 | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)
diff --git a/tests/00raid1 b/tests/00raid1
index c93465d..939205f 100644
--- a/tests/00raid1
+++ b/tests/00raid1
@@ -2,17 +2,29 @@
 # create a simple mirror
 # test version0, version1, and no super
 # test resync and recovery.
+bmf=$targetdir/bmf
 
-mdadm -CR $md0 -l 1 -n2 $dev0 $dev1
-check resync
-check raid1
-testdev $md0 1 $mdsize1a 64
-mdadm -S $md0
+for bm in $bmf internal none
+do
+	for metadata in 0.90 1.0 1.1 1.2 default
+	do
+		[ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+		mdadm -CR $md0 -l 1 -n2 -b $bm -e $metadata $dev0 $dev1
+		check resync
+		check raid1
+		check wait
+		testdev $md0 1 $mdsize1a 64
+		mdadm -S $md0
+	done
+done
+[ -f "$bmf"] && rm $bmf
 
 # now with version-0.90 superblock, spare
 mdadm -CR $md0 -e0.90 --level=raid1 -n3 -x2 $dev0 missing missing $dev1 $dev2
 check recovery
 check raid1
+check wait
+check state UUU
 testdev $md0 1 $mdsize0 64
 mdadm -S $md0
 
@@ -30,5 +42,4 @@ check nosync
 testdev $md0 1 $size 1
 mdadm -S $md0
 
-
 exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 04/13] mdadm/test: redraft 00raid4 test case
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (2 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 03/13] mdadm/test: redraft the 00raid1 test case Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 05/13] mdadm/test: redraft the 00raid5 " Zhilong Liu
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different metadata and bitmap.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00raid4 | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/tests/00raid4 b/tests/00raid4
index 00a14f2..36606b0 100644
--- a/tests/00raid4
+++ b/tests/00raid4
@@ -1,16 +1,30 @@
 
 # create a simple raid4 set
+bmf=$targetdir/bmf
 
-mdadm -CfR $md0 -l 4 -n3 $dev0 $dev1 $dev2
-check resync ; check raid[45]
-testdev $md0 2 $mdsize1 512
-mdadm -S $md0
+for bm in $bmf internal none
+do
+	for metadata in 0.90 1.0 1.1 1.2 default
+	do
+		[ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+		mdadm -CfR $md0 -l 4 -b $bm -e $metadata -n3 $dev0 $dev1 $dev2
+		check resync
+		check raid4
+		check wait
+		check state UUU
+		testdev $md0 2 $mdsize1 512
+		mdadm -S $md0
+	done
+done
+rm $bmf
 
 # now with version-1 superblock
 mdadm -CR $md0 -e1 --level=raid4 -n4 $dev0 $dev1 $dev2 $dev3
-check recovery; check raid[45]
+check recovery
+check raid4
+check wait
+check state UUUU
 testdev $md0 3 $mdsize1 512
 mdadm -S $md0
 
-
 exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 05/13] mdadm/test: redraft the 00raid5 test case
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (3 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 04/13] mdadm/test: redraft 00raid4 " Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 06/13] mdadm/test: redraft the 00raid6 " Zhilong Liu
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different layout, bitmap and
metadata versions, and cover resync/recover
features.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00raid5 | 51 ++++++++++++++++++++++++++-------------------------
 1 file changed, 26 insertions(+), 25 deletions(-)
diff --git a/tests/00raid5 b/tests/00raid5
index b2b7a97..b891694 100644
--- a/tests/00raid5
+++ b/tests/00raid5
@@ -1,33 +1,34 @@
 
 # create a simple raid5 set
 
-mdadm -CfR $md0 -e 0.90 -l 5 -n3 $dev0 $dev1 $dev2
-check resync
-testdev $md0 2 $mdsize0 512
-mdadm -S $md0
+bmf=$targetdir/bmf
 
-# now with version-1 superblock
-mdadm -CR $md0 -e1 --level=raid5 -n4 $dev0 $dev1 $dev2 $dev3
-check recovery
-testdev $md0 3 $mdsize1 512
-mdadm -S $md0
-
-# now same again with explicit layout
-
-for lo in la ra left-symmetric right-symmetric
+for bm in $bmf internal none
 do
-
-  mdadm -CfR $md0  -l 5 -p $lo -n3 $dev0 $dev1 $dev2
-  check resync ; check raid5
-  testdev $md0 2 $mdsize1 512
-  mdadm -S $md0
-
-  # now with version-1 superblock
-  mdadm -CR $md0 -e1 --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3
-  check recovery ; check raid5
-  testdev $md0 3 $mdsize1 512
-  mdadm -S $md0
-
+	for metadata in 0.90 1.0 1.1 1.2 default
+	do
+		for lo in la ra left-symmetric right-symmetric
+		do
+			[ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+			mdadm -CfR $md0 -e $metadata -b $bm -l5 --layout $lo -n3 $dev0 $dev1 $dev2
+			check resync
+			check raid5
+			check wait
+			check state UUU
+			testdev $md0 2 $mdsize1 512
+			mdadm -S $md0
+
+			[ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+			mdadm -CR $md0 -e $metadata -b $bm --level=raid5 --layout $lo -n4 $dev0 $dev1 $dev2 $dev3
+			check recovery
+			check raid5
+			check wait
+			check state UUUU
+			testdev $md0 3 $mdsize1 512
+			mdadm -S $md0
+		done
+	done
 done
+[ -f "$bmf" ] && rm $bmf
 
 exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 06/13] mdadm/test: redraft the 00raid6 test case
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (4 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 05/13] mdadm/test: redraft the 00raid5 " Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 07/13] mdadm/test: redraft the 00raid10 " Zhilong Liu
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different metadata and bitmap,
do more basic checking during testing.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00raid6 | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)
diff --git a/tests/00raid6 b/tests/00raid6
index 6977af9..4ea8fee 100644
--- a/tests/00raid6
+++ b/tests/00raid6
@@ -1,16 +1,21 @@
 
 # create a simple raid6 set
+bmf=$targetdir/bmf
 
-mdadm -CfR $md0 -e0.90 -l 6 -n4 $dev0 $dev1 $dev2 $dev3
-check resync ; check raid6
-testdev $md0 2 $mdsize0 512
-mdadm -S $md0
-
-# now with version-1 superblock
-mdadm -CR $md0 -e1 --level=raid6 -n5 $dev0 $dev1 $dev2 $dev3 $dev4
-check resync ; check raid6
-testdev $md0 3 $mdsize1 512
-mdadm -S $md0
-
+for bm in $bmf internal none
+do
+	for metadata in 0.90 1.0 1.1 1.2 default
+	do
+		[ "$bm" == "$bmf" -a -f "$bmf" ] && rm $bmf
+		mdadm -CfR $md0 -l6 -b $bm -e $metadata -n4 $dev0 $dev1 $dev2 $dev3
+		check resync
+		check wait
+		check raid6
+		check state UUUU
+		testdev $md0 2 $mdsize1 512
+		mdadm -S $md0
+	done
+done
+rm $bmf
 
 exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 07/13] mdadm/test: redraft the 00raid10 test case
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (5 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 06/13] mdadm/test: redraft the 00raid6 " Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize Zhilong Liu
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
make it cover different bitmap, metadata and
"near, far, offset" layouts.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/00raid10 | 41 +++++++++++++++++++++++++++++------------
 1 file changed, 29 insertions(+), 12 deletions(-)
diff --git a/tests/00raid10 b/tests/00raid10
index 796b970..9929ee7 100644
--- a/tests/00raid10
+++ b/tests/00raid10
@@ -1,18 +1,35 @@
 
 # Create some raid10 arrays, all with 6 devices and one spare
 devs="$dev0 $dev1 $dev2 $dev3 $dev4 $dev5 $dev6"
+bmf=$targetdir/bm
 
-for lo in n2 n3 f2 f3
+for bm in $bmf internal none
 do
- cm=1
- case $lo in
-   f2 ) m=3 cm=2;;
-   f3 ) m=2 cm=3;;
-   n2 ) m=3;;
-   n3 ) m=2;;
- esac
- mdadm --create --run --level=raid10 --layout $lo --raid-disks 6 -x 1 $md0 $devs
- check resync ; check raid10
- testdev $md0 $m $mdsize1 $[512*cm]
- mdadm -S $md0
+	for metadata in 0.90 1.1 1.2 default
+	do
+		for lo in n2 n3 f2 f3 o2 o3
+		do
+			cm=1
+			case $lo in
+				f2 ) m=3 cm=2;;
+				f3 ) m=2 cm=3;;
+				n2 ) m=3;;
+				n3 ) m=2;;
+				o3 ) m=2;;
+				o2 ) m=3;;
+			esac
+			[ "$bm" == "$bmf" -a -f $bmf ] && rm $bmf
+			mdadm --create --run --level=raid10 -e $metadata -b $bm --layout $lo --raid-disks 6 -x 1 $md0 $devs
+			check resync
+			check raid10
+			check wait
+			check state UUUUUU
+			check spares 1
+			testdev $md0 $m $mdsize1 $[512*cm]
+			mdadm -S $md0
+		done
+	done
 done
+[ -f $bmf ] && rm $bmf
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (6 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 07/13] mdadm/test: redraft the 00raid10 " Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize Zhilong Liu
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
add checking "component_size > chunk_size"
add checking resize doesn't support with external-file bitmap.
add some basic checking.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/02r5grow        | 53 --------------------------------
 tests/02r5grow-resize | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 85 insertions(+), 53 deletions(-)
 delete mode 100644 tests/02r5grow
 create mode 100644 tests/02r5grow-resize
diff --git a/tests/02r5grow b/tests/02r5grow
deleted file mode 100644
index bb9bd6d..0000000
--- a/tests/02r5grow
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-# create a small raid5 array, make it larger.  Then make it smaller
-
-mdadm -CR $md0 -e0.90 --level raid5 --chunk=64 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
-check wait
-check state UUU
-testdev $md0 2 $[size/2] 32
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $mdsize0 32
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 32
-
-mdadm -S $md0
-
-# same again with version 1.1 superblock
-mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 3 $[size/2] 128
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 3 $[mdsize1_l] 128
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-sh tests/testdev $md0 3 $[size/2] 128
-
-mdadm -S $md0
-
-# create a raid5 array and change the chunk
-mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
-check wait
-check state UUU
-check chunk 32
-
-mdadm $md0 --grow --chunk=64
-check reshape
-check wait
-check chunk 64
-
-mdadm -S $md0
-mdadm -A $md0 $dev1 $dev2 $dev3
-check state UUU
-check chunk 64
-mdadm -S $md0
diff --git a/tests/02r5grow-resize b/tests/02r5grow-resize
new file mode 100644
index 0000000..0f381b7
--- /dev/null
+++ b/tests/02r5grow-resize
@@ -0,0 +1,85 @@
+
+# create a small raid5 array, make it larger.  Then make it smaller
+mdadm -CR $md0 -e0.90 --level raid5 --chunk=64 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
+check wait
+check state UUU
+testdev $md0 2 $[size/2] 32
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid5
+check state UUU
+testdev $md0 2 $mdsize0 32
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 63
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid5
+check state UUU
+testdev $md0 2 $[size/2] 32
+
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check state UUUU
+check raid5
+testdev $md0 3 $[size/2] 128
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid5
+check state UUUU
+testdev $md0 3 $[mdsize1_l] 128
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid5
+check state UUUU
+testdev $md0 3 $[size/2] 128
+
+mdadm -S $md0
+
+# doesn't support to resize raid5 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid5 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid5
+check state UUUU
+testdev $md0 3 $[size/2] 128
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+# create a raid5 array and change the chunk
+mdadm -CR $md0 --level raid5 --metadata=1.1 --chunk=32 --raid-disks 3 --size $[size/2] $dev1 $dev2 $dev3
+check wait
+check state UUU
+check chunk 32
+
+mdadm $md0 --grow --chunk=64
+check reshape
+check wait
+check chunk 64
+
+mdadm -S $md0
+mdadm -A $md0 $dev1 $dev2 $dev3
+check state UUU
+check chunk 64
+mdadm -S $md0
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (7 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 08/13] mdadm/test: redraft 02r5grow and rename it as 02r5grow-resize Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 10/13] mdadm/test: add new test 02r10grow-resize Zhilong Liu
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
add checking "component_size > chunk_size"
add checking resize doesn't support with external-file bitmap.
add some basic checking.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/02r6grow        | 36 ---------------------------
 tests/02r6grow-resize | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 36 deletions(-)
 delete mode 100644 tests/02r6grow
 create mode 100644 tests/02r6grow-resize
diff --git a/tests/02r6grow b/tests/02r6grow
deleted file mode 100644
index 759e627..0000000
--- a/tests/02r6grow
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-# create a small raid6 array, make it larger.  Then make it smaller
-
-mdadm -CR $md0 -e 0.90 --level raid6 --chunk=64 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 2 $[size/2] 32
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $mdsize0 32
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 32
-
-mdadm -S $md0
-
-# same again with version 1.1 superblock
-mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
-check wait
-check state UUUU
-testdev $md0 2 $[size/2] 128
-
-mdadm --grow $md0 --size max
-check resync
-check wait
-testdev $md0 2 $[mdsize1_l] 128
-
-mdadm --grow $md0 --size $[size/2]
-check nosync
-testdev $md0 2 $[size/2] 128
-
-mdadm -S $md0
diff --git a/tests/02r6grow-resize b/tests/02r6grow-resize
new file mode 100644
index 0000000..c5c3301
--- /dev/null
+++ b/tests/02r6grow-resize
@@ -0,0 +1,69 @@
+
+
+# create a small raid6 array, make it larger.  Then make it smaller
+mdadm -CR $md0 -e 0.90 --level raid6 --chunk=64 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 32
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $mdsize0 32
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 63
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 32
+
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid6 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid6
+check state UUUU
+testdev $md0 2 $[mdsize1_l] 128
+
+# resize the component_size less than chunk_size
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid6
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm -S $md0
+
+# doesn't support to resize raid6 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid6 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid6
+check state UUUU
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 10/13] mdadm/test: add new test 02r10grow-resize
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (8 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 09/13] mdadm/test: redraft 02r6grow and rename it as 02r6grow-resize Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap Zhilong Liu
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
This case mainly tested the resize feature
of raid10.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/02r10grow-resize | 103 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 103 insertions(+)
 create mode 100644 tests/02r10grow-resize
diff --git a/tests/02r10grow-resize b/tests/02r10grow-resize
new file mode 100644
index 0000000..d376a83
--- /dev/null
+++ b/tests/02r10grow-resize
@@ -0,0 +1,103 @@
+
+# Create some raid10 arrays and test resize
+devs="$dev0 $dev1 $dev2 $dev3"
+for metadata in 0.90 1.2
+do
+	for chunk in 64 128
+	do
+		for lo in n2 n3 o2 o3
+		do
+			mdadm -CR -l raid10 -e $metadata -b internal --chunk=$chunk --layout $lo --size $[size/2] --raid-disks 4 $md0 $devs
+			check resync
+			check wait
+			check raid10
+			check state UUUU
+
+			mdadm --grow $md0 --size max
+			check resync
+			check wait
+			check raid10
+			check state UUUU
+
+			mdadm --grow $md0 --size $(expr $chunk - 1)
+			[ $? -eq 0 ] && exit 1
+
+			mdadm --grow $md0 --size $[size/2]
+			check nosync
+			check raid10
+			check state UUUU
+
+			mdadm -S $md0
+		done
+	done
+done
+
+# doesn't support to resize raid10 based on far mode
+for metadata in 1.0 1.1
+do
+	for lo in f2 f3
+	do
+		mdadm -CR -l raid10 -e $metadata -b internal --chunk=64 --layout $lo --size $[size/2] --raid-disks 4 $md0 $devs
+		check resync
+		check wait
+		check raid10
+		check state UUUU
+
+		mdadm --grow $md0 --size max
+		[ $? -eq 0 ] && exit 1
+
+		mdadm --grow $md0 --size 63
+		[ $? -eq '0' ] && exit 1
+
+		mdadm --grow $md0 --size 256
+		[ $? -eq '0' ] && exit 1
+
+		mdadm -S $md0
+	done
+done
+
+# doesn't support to resize raid10 based-on external bitmap
+bm=$targetdir/bm
+[ -f $bm ] && rm $bm
+mdadm -CR $md0 --level raid10 --metadata=1.1 -b $bm --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid10
+check state UUUU
+
+mdadm --grow $md0 --size max
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size 127
+[ $? -eq '0' ] && exit 1
+
+mdadm --grow $md0 --size 256
+[ $? -eq '0' ] && exit 1
+
+rm $bm
+mdadm -S $md0
+
+# same again with version 1.1 superblock
+mdadm -CR $md0 --level raid10 --metadata=1.1 --chunk=128 --raid-disks 4 --size $[size/2] $dev1 $dev2 $dev3 $dev4
+check wait
+check raid10
+check state UUUU
+
+mdadm --grow $md0 --size max
+check resync
+check wait
+check raid10
+check state UUUU
+testdev $md0 2 $[mdsize1_l] 128
+
+mdadm --grow $md0 --size 127
+[ $? -eq 0 ] && exit 1
+
+mdadm --grow $md0 --size $[size/2]
+check nosync
+check raid10
+check state UUUU
+testdev $md0 2 $[size/2] 128
+
+mdadm -S $md0
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (9 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 10/13] mdadm/test: add new test 02r10grow-resize Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile Zhilong Liu
  2017-12-01  9:48 ` [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper Zhilong Liu
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
clean the code style.
add sleep after add new device so that udev could
have enough time to execute.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/05r1-internalbitmap | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/tests/05r1-internalbitmap b/tests/05r1-internalbitmap
index dd7232a..587d5d8 100644
--- a/tests/05r1-internalbitmap
+++ b/tests/05r1-internalbitmap
@@ -2,8 +2,10 @@
 #
 # create a raid1 with an internal bitmap
 #
-mdadm --create -e0.90 --run $md0 --level=1 -n2 --delay=1  --bitmap internal --bitmap-chunk=4 $dev1 $dev2
+mdadm --create -e0.90 --run $md0 --level=1 -n2 --delay=1 --bitmap internal --bitmap-chunk=4 $dev1 $dev2
 check wait
+check raid1
+check state UU
 testdev $md0 1 $mdsize0 64
 mdadm -S $md0
 
@@ -14,8 +16,9 @@ sleep 4
 dirty2=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
-then  echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
-  exit 1
+then
+	echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
+	exit 1
 fi
 mdadm $md0 -f $dev1
 testdev $md0 1 $mdsize0 64
@@ -23,16 +26,19 @@ sleep 4
 dirty3=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 if [ $dirty3 -lt 400 ]
 then
-   echo >&2 "ERROR dirty count $dirty3 is too small"
-   exit 2
+	echo >&2 "ERROR dirty count $dirty3 is too small"
+	exit 2
 fi
-
 mdadm -S $md0
 
 mdadm --assemble -R $md0  $dev2
 mdadm --zero-superblock $dev1
 mdadm $md0 --add $dev1
+sleep 1
 check recovery
+check wait
+check raid1
+check state UU
 
 dirty4=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 check wait
@@ -40,8 +46,10 @@ sleep 4
 dirty5=`mdadm -X $dev2 | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
-then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
-  exit 1
+then
+	echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
+	exit 1
 fi
-
 mdadm -S $md0
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (10 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 11/13] mdadm/test: did basic improvement for 05r1-internalbitmap Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  2017-12-01  9:48 ` [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper Zhilong Liu
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
Clean the code style.
Add sleep after add new device so that udev could
have enough time to execute.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/05r1-n3-bitmapfile | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/tests/05r1-n3-bitmapfile b/tests/05r1-n3-bitmapfile
index f1c3f1e..b7002dd 100644
--- a/tests/05r1-n3-bitmapfile
+++ b/tests/05r1-n3-bitmapfile
@@ -6,8 +6,10 @@
 #
 bmf=$targetdir/bitmap
 rm -f $bmf
-mdadm --create -e0.90 --run $md0 --level=1 -n3 --delay=1  --bitmap $bmf $dev1 $dev2 $dev3
+mdadm --create -e0.90 --run $md0 --level=1 -n3 --delay=1 --bitmap $bmf $dev1 $dev2 $dev3
 check wait
+check raid1
+check state UUU
 testdev $md0 1 $mdsize0 64
 mdadm -S $md0
 
@@ -18,8 +20,9 @@ sleep 4
 dirty2=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty1 -lt 400 -o $dirty2 -ne 0 ]
-then  echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
-  exit 1
+then
+	echo >&2 "ERROR bad 'dirty' counts: $dirty1 and $dirty2"
+	exit 1
 fi
 mdadm $md0 -f $dev2
 testdev $md0 1 $mdsize0 64
@@ -27,17 +30,20 @@ sleep 4
 dirty3=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 if [ $dirty3 -lt 400 ]
 then
-   echo >&2 "ERROR dirty count $dirty3 is too small"
-   exit 2
+	echo >&2 "ERROR dirty count $dirty3 is too small"
+	exit 2
 fi
-
 mdadm -S $md0
 
 mdadm --assemble -R $md0 --bitmap=$bmf $dev1 $dev3
 check nosync
 mdadm --zero-superblock $dev2
 mdadm $md0 --add $dev2
+sleep 1
 check recovery
+check wait
+check raid1
+check state UUU
 
 dirty4=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 check wait
@@ -45,9 +51,10 @@ sleep 4
 dirty5=`mdadm -X $bmf | sed -n -e 's/.*Bitmap.* \([0-9]*\) dirty.*/\1/p'`
 
 if [ $dirty4 -lt 400 -o $dirty5 -ne 0 ]
-then echo echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
-  exit 1
+then
+	echo >&2 "ERROR bad 'dirty' counts at end: $dirty4 $dirty5"
+	exit 1
 fi
-
 mdadm -S $md0
+
 exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread* [PATCH 13/13] mdadm/test: Change check nosync as check recovery in 05r1-re-add-nosuper
  2017-12-01  9:48 [RFC PATCH 00/13] mdadm/test: Basic improvement for some cases Zhilong Liu
                   ` (11 preceding siblings ...)
  2017-12-01  9:48 ` [PATCH 12/13] mdadm/test: did basic improvement for 05r1-n3-bitmapfile Zhilong Liu
@ 2017-12-01  9:48 ` Zhilong Liu
  12 siblings, 0 replies; 14+ messages in thread
From: Zhilong Liu @ 2017-12-01  9:48 UTC (permalink / raw)
  To: jsorensen; +Cc: linux-raid, Zhilong Liu
The commit: 091e8e6e061a (Manage: Remove all references
to md_get_version()) has been result in the case failure
due to deprecate the API md_get_version(). So modify the
test case to check recovery when execute re-add.
Signed-off-by: Zhilong Liu <zlliu@suse.com>
---
 tests/05r1-re-add-nosuper | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tests/05r1-re-add-nosuper b/tests/05r1-re-add-nosuper
index 058d602..030acdf 100644
--- a/tests/05r1-re-add-nosuper
+++ b/tests/05r1-re-add-nosuper
@@ -9,6 +9,8 @@ rm -f $bmf
 mdadm -B $md0 -l1 -n2 -b$bmf -d1 $dev1 $dev2
 check resync
 check wait
+check state UU
+check raid1
 testdev $md0 1 $size 1
 sleep 4
 
@@ -16,7 +18,11 @@ mdadm $md0 -f $dev2
 sleep 1
 mdadm $md0 -r $dev2
 mdadm $md0 --re-add $dev2
-check nosync
+sleep 1
+check recovery
+check wait
+check state UU
+check raid1
 
 mdadm $md0 -f $dev2
 sleep 1
@@ -24,6 +30,8 @@ mdadm $md0 -r $dev2
 testdev $md0 1 $size 1
 mdadm $md0 --re-add $dev2
 check wait
+check state UU
+check raid1
 cmp --bytes=$[$mdsize0*1024] $dev1 $dev2
 
 mdadm $md0 -f $dev2; sleep 1
@@ -31,8 +39,14 @@ mdadm $md0 -r $dev2
 if dd if=/dev/zero of=$md0 ; then : ; fi
 blockdev --flushbufs $md0 # make sure writes have been sent
 mdadm $md0 --re-add $dev2
+sleep 1
 check recovery
 check wait
+check state UU
+check raid1
 # should BLKFLSBUF and then read $dev1/$dev2...
 cmp --bytes=$[$mdsize0*1024] $file1 $file2
 mdadm -S $md0
+rm -f $bmf
+
+exit 0
-- 
1.8.5.6
^ permalink raw reply related	[flat|nested] 14+ messages in thread