From d757b2431a56bd5ae45fe863423942d89e14cbf9 Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Fri, 6 Jan 2017 21:46:58 +0100 Subject: [PATCH] tests: make test more race immune Add more delay and increase raid size. Speedup volume during wait for sync. Drop --yes from lvcreate. --- test/shell/lvcreate-raid-nosync.sh | 49 +++++++++++++++--------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/test/shell/lvcreate-raid-nosync.sh b/test/shell/lvcreate-raid-nosync.sh index b1916f5f0..40baa170e 100644 --- a/test/shell/lvcreate-raid-nosync.sh +++ b/test/shell/lvcreate-raid-nosync.sh @@ -21,67 +21,68 @@ aux have_raid4 && segtypes="raid4 raid5" aux prepare_vg 6 +_sync() { + aux enable_dev "$dev1" + + aux wait_for_sync $vg $lv1 + test -z "$1" || check raid_leg_status $vg $lv1 $1 + lvremove --yes $vg/$lv1 + + # restore to delay_dev tables for all devices + aux restore_from_devtable "$dev1" +} + # Delay 1st leg so that rebuilding status characters # can be read before resync finished too quick. -aux delay_dev "$dev1" 0 50 $(get first_extent_sector "$dev1") +aux delay_dev "$dev1" 0 90 $(get first_extent_sector "$dev1") # raid0/raid0_meta don't support resynchronization for r in raid0 raid0_meta do - lvcreate --yes --type $r -i 3 -l 1 -n $lv1 $vg + lvcreate --type $r -i 3 -l 1 -n $lv1 $vg check raid_leg_status $vg $lv1 "AAA" lvremove --yes $vg/$lv1 done # raid1 supports resynchronization -lvcreate --yes --type raid1 -m 2 -l 2 -n $lv1 $vg +lvcreate --type raid1 -m 2 -l 4 -n $lv1 $vg check raid_leg_status $vg $lv1 "aaa" -aux wait_for_sync $vg $lv1 -check raid_leg_status $vg $lv1 "AAA" -lvremove --yes $vg/$lv1 +_sync "AAA" # raid1 supports --nosync -lvcreate --yes --type raid1 --nosync -m 2 -l 1 -n $lv1 $vg +lvcreate --type raid1 --nosync -m 2 -l 1 -n $lv1 $vg check raid_leg_status $vg $lv1 "AAA" lvremove --yes $vg/$lv1 for r in $segtypes do # raid4/5 support resynchronization - lvcreate --yes --type $r -i 3 -l 2 -n $lv1 $vg + lvcreate --type $r -i 3 -l 4 -n $lv1 $vg check raid_leg_status $vg $lv1 "aaaa" - aux wait_for_sync $vg $lv1 - check raid_leg_status $vg $lv1 "AAAA" + _sync "AAAA" # raid4/5 support --nosync - lvcreate --yes --type $r --nosync -i 3 -l 1 -n $lv2 $vg + lvcreate --type $r --nosync -i 3 -l 1 -n $lv2 $vg check raid_leg_status $vg $lv2 "AAAA" lvremove --yes $vg done # raid6 supports resynchronization -lvcreate --yes --type raid6 -i 3 -l 2 -n $lv1 $vg +lvcreate --type raid6 -i 3 -l 4 -n $lv1 $vg check raid_leg_status $vg $lv1 "aaaaa" -aux wait_for_sync $vg $lv1 -check raid_leg_status $vg $lv1 "AAAAA" -lvremove --yes $vg/$lv1 +_sync "AAAAA" # raid6 rejects --nosync; it has to initialize P- and Q-Syndromes -not lvcreate --yes --type raid6 --nosync -i 3 -l 1 -n $lv1 $vg +not lvcreate --type raid6 --nosync -i 3 -l 1 -n $lv1 $vg # raid10 supports resynchronization -lvcreate --yes --type raid10 -m 1 -i 3 -l 2 -n $lv1 $vg +lvcreate --type raid10 -m 1 -i 3 -l 4 -n $lv1 $vg check raid_leg_status $vg $lv1 "aaaaaa" -aux wait_for_sync $vg $lv1 -check raid_leg_status $vg $lv1 "AAAAAA" -aux wait_for_sync $vg $lv1 -lvremove --yes $vg/$lv1 +_sync "AAAAAA" # raid10 supports --nosync -lvcreate --yes --type raid10 --nosync -m 1 -i 3 -l 1 -n $lv1 $vg +lvcreate --type raid10 --nosync -m 1 -i 3 -l 1 -n $lv1 $vg check raid_leg_status $vg $lv1 "AAAAAA" -aux wait_for_sync $vg $lv1 -lvremove --yes $vg/$lv1 vgremove -ff $vg -- 2.43.5