diff --git a/test b/test index 25268a0..e74bbe5 100755 --- a/test +++ b/test @@ -320,6 +320,13 @@ check() { grep -sq "inactive" /proc/mdstat || die "array is not inactive!" ;; + # It only can be used when there is only one raid + chunk ) + chunk_size=`awk -F',' '/chunk/{print $2}' /proc/mdstat | awk -F'[a-z]' '{print $1}'` + if [ "$chunk_size" -ne "$2" ] ; then + die "chunksize should be $2, but it's $chunk_size" + fi + ;; * ) die "unknown check $1" ;; diff --git a/tests/02r5grow b/tests/02r5grow index 386e82e..bb9bd6d 100644 --- a/tests/02r5grow +++ b/tests/02r5grow @@ -34,3 +34,20 @@ 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