Tests were failing because the previous test gave up while trying to unload the scsi_debug module. Try longer to remove it, and then throw in a call to udevadm settle for good measure.
Signed-off-by: Phillip Susi <ps...@cfl.rr.com> --- tests/t-local.sh | 6 +++++- tests/t9040-many-partitions.sh | 12 ------------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/tests/t-local.sh b/tests/t-local.sh index 159cc62..1decb4d 100644 --- a/tests/t-local.sh +++ b/tests/t-local.sh @@ -24,11 +24,15 @@ scsi_debug_cleanup_() # We have to insist. Otherwise, a single rmmod usually fails to remove it, # due either to "Resource temporarily unavailable" or to # "Module scsi_debug is in use". - for i in 1 2 3; do + i=0 + udevadm settle + while [ $i -lt 10 ] ; do rmmod scsi_debug \ && { test "$VERBOSE" = yes && warn_ $ME_ rmmod scsi_debug...; break; } sleep .2 || sleep 1 + i=$((i + 1)) done + udevadm settle fi rm -fr $scsi_debug_lock_dir_ } diff --git a/tests/t9040-many-partitions.sh b/tests/t9040-many-partitions.sh index 92e1781..0423d68 100644 --- a/tests/t9040-many-partitions.sh +++ b/tests/t9040-many-partitions.sh @@ -68,16 +68,4 @@ $AWK "BEGIN {d = $t_final - $t0; n = $n_partitions; st = 60 < d;"\ parted -m -s $scsi_dev u s p > out || fail=1 compare exp out || fail=1 -# We must remove these partitions before terminating. -# Otherwise, even though cleanup-driven rmmod will eventually cause -# them to be removed, they may continue to be removed long after -# the rmmod cleanup lock has been released, and such removals -# can (and regularly did) interfere with the following test. -i=1 -while :; do - parted -s $scsi_dev rm $i || fail=1 - test $i = $n_partitions && break - i=$((i+1)) -done - Exit $fail -- 1.7.5.4