q
EOF
-sleep 3
+udevadm settle
ts_log "Probe first RAID member"
$TS_CMD_BLKID -p -o udev $DEVICE1 2>&1 | sort >> $TS_OUTPUT
ts_log "Stop RAID device"
/sbin/mdadm -q -S ${MD_DEVICE} >> $TS_OUTPUT 2>&1
-sleep 3
+udevadm settle
ts_log "Deinitialize devices"
ts_device_deinit $DEVICE1
q
EOF
-sleep 3
+udevadm settle
MD_DEVNAME=md8
MD_DEVICE=/dev/${MD_DEVNAME}
/sbin/mdadm -q -S ${MD_DEVICE} &> /dev/null
/sbin/mdadm -q --create ${MD_DEVICE} --metadata=0.90 --chunk=64 --level=1 \
--raid-devices=2 ${DEVICE}1 ${DEVICE}2 >> $TS_OUTPUT 2>&1
-
-sleep 3
+udevadm settle
ts_log "Probe whole-disk"
$TS_CMD_BLKID -p -o udev ${DEVICE} 2>&1 | sort >> $TS_OUTPUT
/sbin/mdadm -q -S ${MD_DEVICE} >> $TS_OUTPUT 2>&1
-sleep 3
+udevadm settle
rmmod scsi_debug
ts_fdisk_clean
q
EOF
-sleep 3
+udevadm settle
ts_log "Probe first RAID member"
$TS_CMD_BLKID -p -o udev $DEVICE1 2>&1 | sort >> $TS_OUTPUT
ts_log "Stop RAID device"
/sbin/mdadm -q -S ${MD_DEVICE} >> $TS_OUTPUT 2>&1
-sleep 3
+udevadm settle
ts_log "Deinitialize devices"
ts_device_deinit $DEVICE1
p
w
EOF
- sleep 1
+ udevadm settle
mkfs.ext2 -q ${dev}1
mkfs.ext2 -q ${dev}2
+ udevadm settle
}
function deinit_device {
- sleep 3
+ udevadm settle
rmmod scsi_debug
}
ts_init_subtest "by-disk-mounted"
DEVICE=$(init_device)
mkfs.ext2 -q -F $DEVICE
+udevadm settle
mkdir -p $TS_MOUNTPOINT
mount $DEVICE $TS_MOUNTPOINT
-sleep 1
$TS_CMD_EJECT --force $DEVICE && ts_log "Success"
deinit_device
ts_finalize_subtest
q
EOF
+udevadm settle
ts_log "Alignment offsets:"
cat /sys/block/${DEVNAME}/${DEVNAME}{1,2,3,4,5,6,7}/alignment_offset >> $TS_OUTPUT 2>&1
-sleep 3
rmmod scsi_debug
ts_fdisk_clean
q
EOF
+udevadm settle
ts_log "Alignment offsets:"
cat /sys/block/${DEVNAME}/${DEVNAME}{1,2,3,4,5,6,7}/alignment_offset >> $TS_OUTPUT 2>&1
-sleep 3
rmmod scsi_debug
ts_fdisk_clean
q
EOF
+udevadm settle
ts_log "Alignment offsets:"
cat /sys/block/${DEVNAME}/${DEVNAME}{1,2}/alignment_offset >> $TS_OUTPUT 2>&1
-sleep 3
MD_DEVNAME=md8
MD_DEVICE=/dev/${MD_DEVNAME}
/sbin/mdadm -q --create ${MD_DEVICE} --metadata=0.90 --chunk=64 \
--level=0 --raid-devices=2 ${DEVICE}1 ${DEVICE}2 >> $TS_OUTPUT 2>&1
+udevadm settle
ts_log "Create partitions (MD)"
$TS_CMD_FDISK ${MD_DEVICE} >> $TS_OUTPUT 2>&1 <<EOF
n
q
EOF
+udevadm settle
ts_log "Alignment offsets (MD):"
cat /sys/block/${MD_DEVNAME}/${MD_DEVNAME}p{1,2}/alignment_offset >> $TS_OUTPUT 2>&1
-sleep 3
/sbin/mdadm -q -S ${MD_DEVICE} >> $TS_OUTPUT 2>&1
+
+udevadm settle
rmmod scsi_debug
ts_fdisk_clean
q
EOF
+udevadm settle
ts_log "Alignment offsets:"
cat /sys/block/${DEVNAME}/${DEVNAME}{1,2,3,4,5,6,7}/alignment_offset >> $TS_OUTPUT 2>&1
-sleep 3
rmmod scsi_debug
ts_fdisk_clean
[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device"
DEVICE="/dev/${DEVNAME}"
+udevadm settle
ts_log "Create partitions"
$TS_CMD_FDISK ${DEVICE} >> /dev/null 2>&1 <<EOF
EOF
DEVICE="/dev/${DEVNAME}1"
-
-sleep 3
+udevadm settle
ts_log "Create filesystem"
mkfs.ext4 -L "$LABEL" -U "$UUID" $DEVICE &> /dev/null
export LIBMOUNT_MTAB=$TS_OUTPUT.mtab
> $LIBMOUNT_MTAB
+udevadm settle
ts_init_subtest "mount-by-devname"
mkdir -p $MOUNTPOINT &> /dev/null
echo "umount (device) failed: found $DEVICE in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
-#exit 1
ts_init_subtest "mount-by-label"
mkdir -p $MOUNTPOINT &> /dev/null
mkdir -p $MOUNTPOINT &> /dev/null
img=$(ts_image_init)
mkfs.ext3 -F $img &> /dev/null
+udevadm settle
+
ts_valgrind $TESTPROG --mount -o loop $img $MOUNTPOINT >> $TS_OUTPUT 2>&1
grep -q $MOUNTPOINT $LIBMOUNT_MTAB || \
echo "(loopdev) cannot find $MOUNTPOINT in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
+udevadm settle
ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
grep -q $MOUNTPOINT $LIBMOUNT_MTAB &&
echo "umount failed: found $MOUNTPOINT in $LIBMOUNT_MTAB" >> $TS_OUTPUT 2>&1
[ "x${DEVNAME}" == "x" ] && ts_die "Cannot find device"
DEVICE="/dev/${DEVNAME}"
+udevadm settle
ts_log "Create partitions"
$TS_CMD_FDISK ${DEVICE} >> /dev/null 2>&1 <<EOF
DEVICE="/dev/${DEVNAME}1"
-sleep 3
+udevadm settle
ts_log "Create filesystem"
mkfs.ext4 -L "$LABEL" -U "$UUID" $DEVICE &> /dev/null
rm -f $LIBMOUNT_UTAB
> $LIBMOUNT_UTAB
+udevadm settle
ts_init_subtest "mount-by-devname"
mkdir -p $MOUNTPOINT &> /dev/null
echo "(by device) cannot find $DEVICE in /proc/mounts" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
-sleep 1
ts_init_subtest "umount-by-devname"
ts_valgrind $TESTPROG --umount $DEVICE >> $TS_OUTPUT 2>&1
echo "(by label) cannot find $DEVICE in $LIBMOUNT_UTAB" >> $TS_OUTPUT 2>&1
ts_finalize_subtest
-sleep 1
ts_init_subtest "umount"
ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
if [ -x "/sbin/mkfs.btrfs" ]; then
ts_log "Create filesystem [btrfs]"
/sbin/mkfs.btrfs -L "$LABEL" $DEVICE &> /dev/null
+ udevadm settle
+
mount -t btrfs $DEVICE $MOUNTPOINT &> /dev/null
/sbin/btrfsctl -S sub $MOUNTPOINT &> /dev/null
umount $MOUNTPOINT &> /dev/null
- sleep 1
+ udevadm settle
ts_init_subtest "mount-uhelper-subvol"
mkdir -p $MOUNTPOINT &> /dev/null
$TS_CMD_FINDMNT --mtab $MOUNTPOINT -o OPTIONS -n >> $TS_OUTPUT 2>&1
ts_log "---"
- sleep 1
-
ts_init_subtest "umount-subvol"
ts_valgrind $TESTPROG --umount $MOUNTPOINT >> $TS_OUTPUT 2>&1
grep -q $DEVICE $LIBMOUNT_UTAB && \
# Create filesystem
#
mkfs.ext3 -F -L $LABEL $DEVICE -U $UUID &> /dev/null || ts_die "Cannot make ext3 on $DEVICE" $DEVICE
+udevadm settle
+
ts_device_has_uuid $DEVICE || ts_die "Cannot find UUID on $DEVICE" $DEVICE
FSTAB="$TS_OUTDIR/fstab"
sed -i -e 's/source: .*//g' $TS_OUTPUT # devname is generated, remove it
ts_finalize_subtest
-
-sleep 3
+udevadm settle
rmmod scsi_debug
ts_finalize
q
EOF
+udevadm settle
+
ts_log "Create filesystem A"
mkfs.ext2 ${DEVICE}1 &> /dev/null
ts_log "Create filesystem B"
ts_log "Create filesystem D"
mkfs.ext2 ${DEVICE}4 &> /dev/null
+udevadm settle
+
function multi_mount() {
local DEV=$1
local MNT=$2
[ $? == 0 ] || ts_log "umount failed"
ts_finalize_subtest
-sleep 3
+udevadm settle
rmmod scsi_debug >> $TS_OUTPUT 2>&1
[ $? == 0 ] || ts_die "device busy (umount failed?)"
q
EOF
+udevadm settle
+
ts_log "Create filesystem A"
mkfs.ext2 ${DEVICE}1 &> /dev/null
ts_log "Create filesystem B"
ts_log "Create filesystem D"
mkfs.ext2 ${DEVICE}4 &> /dev/null
+udevadm settle
ts_log "Do tests..."
$TS_CMD_UMOUNT --recursive $TS_MOUNTPOINT >> $TS_OUTPUT 2>&1
[ $? == 0 ] || ts_die "umount failed"
-sleep 3
+udevadm settle
rmmod scsi_debug >> $TS_OUTPUT 2>&1
[ $? == 0 ] || ts_die "device busy (umount failed?)"