test: set timeout for udevadm settle/wait/lock

Otherwise, if a test in a spurious state, it consumes quite long time.
Let's fail earlier in such case.

This also drops an unnecessary calls of 'udevadm settle' in
testcase_nvme_basic() of TEST-64-UDEV-STORAGE.
This commit is contained in:
Yu Watanabe
2025-04-03 01:48:19 +09:00
parent a345f47625
commit 3ff6d02320
18 changed files with 64 additions and 63 deletions

View File

@@ -394,7 +394,7 @@ testcase_nspawn_settings() {
for dev in sd-host-only sd-shared{1,2,3} sd-macvlan{1,2} sd-macvlanloong sd-ipvlan{1,2} sd-ipvlanlooong; do
ip link add "$dev" type dummy
done
udevadm settle
udevadm settle --timeout=30
ip link property add dev sd-shared3 altname sd-altname3 altname sd-altname-tooooooooooooo-long
ip link
trap nspawn_settings_cleanup RETURN

View File

@@ -19,7 +19,7 @@ function check() {
for _ in {1..2}; do
systemctl restart systemd-udevd.service
udevadm control --ping
udevadm settle
udevadm settle --timeout=30
check_validity
for _ in {1..2}; do

View File

@@ -29,7 +29,7 @@ dd if=/dev/zero of="$blk" bs=1M count=1
loopdev="$(losetup --show -f "$blk")"
# Wait for devices created in the above being processed.
udevadm settle --timeout 30
udevadm settle --timeout=30
udevadm -h

View File

@@ -27,7 +27,7 @@ at_exit() {
trap at_exit EXIT
udevadm settle --timeout 30
udevadm settle --timeout=30
mkdir -p /run/systemd/system/
cat >/run/systemd/system/test@.service <<EOF
@@ -53,7 +53,7 @@ ESCAPED=$(systemd-escape -p "${SYSPATH}")
SHELL_ESCAPED=$(printf '%q' "${ESCAPED}")
assert_eq "$(systemd-escape -u -p "${ESCAPED}")" "${SYSPATH}"
udevadm wait --timeout 30 --settle "/sys/class/net/${IFNAME}"
udevadm wait --timeout=30 --settle "/sys/class/net/${IFNAME}"
assert_eq "$(udevadm info --query=property --property SYSTEMD_WANTS --value "/sys/class/net/${IFNAME}")" "test@${ESCAPED}.service"
# The value shown by systemctl is doubly escaped and quoted.
assert_eq "$(systemctl show -p Wants --value "${ESCAPED}.device")" "\"test@${SHELL_ESCAPED}.service\""

View File

@@ -8,12 +8,12 @@ udevadm control --log-level=debug
IFNAME=test-udev-aaa
ip link add "$IFNAME" type dummy
IFINDEX=$(ip -json link show "$IFNAME" | jq '.[].ifindex')
udevadm wait --timeout 10 "/sys/class/net/$IFNAME"
udevadm wait --timeout=10 "/sys/class/net/$IFNAME"
# Check if the database file is created.
[[ -e "/run/udev/data/n$IFINDEX" ]]
ip link del "$IFNAME"
udevadm wait --timeout 10 --removed --settle "/sys/class/net/$IFNAME"
udevadm wait --timeout=10 --removed --settle "/sys/class/net/$IFNAME"
# CHeck if the database file is removed.
[[ ! -e "/run/udev/data/n$IFINDEX" ]]

View File

@@ -24,7 +24,7 @@ at_exit() {
trap at_exit EXIT
udevadm settle
udevadm settle --timeout=30
mkdir -p /run/udev/udev.conf.d/
cat >/run/udev/udev.conf.d/timeout.conf <<EOF
@@ -63,7 +63,7 @@ grep -q -F 'ID_PROCESSING=1' "/run/udev/data/n${IFINDEX}"
# Forcibly kill sleep command invoked by the udev rule to finish processing the add event.
killall sleep
udevadm settle --timeout=20
udevadm settle --timeout=30
# Check if ID_PROCESSING flag is unset, and the device units are active.
(! grep -q -F 'ID_PROCESSING=1' "/run/udev/data/n${IFINDEX}")

View File

@@ -42,7 +42,7 @@ MountImages=$TMPDIR/foo.raw:/var
EOF
systemctl daemon-reload
udevadm settle
udevadm settle --timeout=30
# Check if no lock file exists, if the lock directory exists.
if [[ -d /run/udev/links.lock/ ]]; then
@@ -62,7 +62,7 @@ done
systemctl stop test-diskseq.service || :
udevadm settle
udevadm settle --timeout=30
# Check if the lock directory exists, but no lock file exists in it.
[[ -d /run/udev/links.lock/ ]]

View File

@@ -143,18 +143,18 @@ cryptsetup luksAddKey --batch-mode \
STORE_IMAGE="$WORKDIR/store.img"
truncate -s 64M "$STORE_IMAGE"
STORE_LOOP="$(losetup --show --find --partscan "$STORE_IMAGE")"
udevadm lock --device "$STORE_LOOP" sfdisk "$STORE_LOOP" <<EOF
udevadm lock --timeout=30 --device "$STORE_LOOP" sfdisk "$STORE_LOOP" <<EOF
label: gpt
type=0FC63DAF-8483-4772-8E79-3D69D8477DE4 name=header_store size=32M
type=0FC63DAF-8483-4772-8E79-3D69D8477DE4 name=keyfile_store
EOF
udevadm settle --timeout=60
mkdir -p /mnt
udevadm lock --device "/dev/disk/by-partlabel/header_store" mkfs.ext4 -L header_store "/dev/disk/by-partlabel/header_store"
udevadm lock --timeout=30 --device "/dev/disk/by-partlabel/header_store" mkfs.ext4 -L header_store "/dev/disk/by-partlabel/header_store"
mount "/dev/disk/by-partlabel/header_store" /mnt
cp "$IMAGE_DETACHED_HEADER" /mnt/header
umount /mnt
udevadm lock --device "/dev/disk/by-partlabel/keyfile_store" mkfs.ext4 -L keyfile_store "/dev/disk/by-partlabel/keyfile_store"
udevadm lock --timeout=30 --device "/dev/disk/by-partlabel/keyfile_store" mkfs.ext4 -L keyfile_store "/dev/disk/by-partlabel/keyfile_store"
mount "/dev/disk/by-partlabel/keyfile_store" /mnt
cp "$IMAGE_DETACHED_KEYFILE2" /mnt/keyfile
umount /mnt

View File

@@ -207,7 +207,7 @@ EOF
input_name=${input_name%/device/name}
lid_dev=/dev/${input_name#/sys/class/}
udevadm info --wait-for-initialization=10s "$lid_dev"
udevadm settle
udevadm settle --timeout=30
# close lid
evemu-event "$lid_dev" --sync --type 5 --code 0 --value 1
@@ -453,7 +453,7 @@ EOF
echo "cannot find suitable scsi block device" >&2
exit 1
fi
udevadm settle
udevadm settle --timeout=30
udevadm info "$dev"
# trigger logind and activate session
@@ -472,7 +472,7 @@ EOF
echo "cannot find suitable scsi block device" >&2
exit 1
fi
udevadm settle
udevadm settle --timeout=30
# check ACL
sleep 1

View File

@@ -199,11 +199,11 @@ if [[ -n "${OPENSSL_CONFIG:-}" ]]; then
fi
# The kernel sometimes(?) does not emit "add" uevent for loop block partition devices.
# Let's not expect the devices to be initialized.
udevadm wait --timeout 60 --settle --initialized=no "${partitions[@]}"
udevadm lock --device="${loop}p1" dd if="$MINIMAL_IMAGE.raw" of="${loop}p1"
udevadm lock --device="${loop}p2" dd if="$MINIMAL_IMAGE.verity" of="${loop}p2"
udevadm wait --timeout=60 --settle --initialized=no "${partitions[@]}"
udevadm lock --timeout=60 --device="${loop}p1" dd if="$MINIMAL_IMAGE.raw" of="${loop}p1"
udevadm lock --timeout=60 --device="${loop}p2" dd if="$MINIMAL_IMAGE.verity" of="${loop}p2"
if [[ -n "${OPENSSL_CONFIG:-}" ]]; then
udevadm lock --device="${loop}p3" dd if="$MINIMAL_IMAGE.verity-sig" of="${loop}p3"
udevadm lock --timeout=60 --device="${loop}p3" dd if="$MINIMAL_IMAGE.verity-sig" of="${loop}p3"
fi
losetup -d "$loop"
udevadm settle --timeout=60

View File

@@ -373,7 +373,7 @@ $imgs/zzz7 : start= 6291416, size= 131072, type=0FC63DAF-8483-4772-8E79
fi
loop="$(losetup -P --show --find "$imgs/zzz")"
udevadm wait --timeout 60 --settle "${loop:?}p7"
udevadm wait --timeout=60 --settle "${loop:?}p7"
volume="test-repart-$RANDOM"
@@ -994,7 +994,7 @@ EOF
# shellcheck disable=SC2064
trap "rm -rf '$defs' '$imgs' ; losetup -d '$loop'" RETURN ERR
udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
# Check that the verity block sizes are as expected
veritysetup dump "${loop}p2" | grep 'Data block size:' | grep -q '4096'
@@ -1054,7 +1054,7 @@ EOF
# shellcheck disable=SC2064
trap "rm -rf '$defs' '$imgs' ; losetup -d '$loop'" RETURN ERR
udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
output=$(sfdisk -J "$loop")
@@ -1136,7 +1136,7 @@ EOF
fi
loop=$(losetup -P --show -f "$imgs/zzz")
udevadm wait --timeout 60 --settle "${loop:?}p1" "${loop:?}p2"
udevadm wait --timeout=60 --settle "${loop:?}p1" "${loop:?}p2"
# Test that /usr/def did not end up in the root partition but other files did.
mkdir "$imgs/mnt"
@@ -1349,7 +1349,7 @@ EOF
truncate -s 100m "$imgs/$sector.img"
loop=$(losetup -b "$sector" -P --show -f "$imgs/$sector.img" )
udevadm wait --timeout 60 --settle "${loop:?}"
udevadm wait --timeout=60 --settle "${loop:?}"
systemd-repart --offline="$OFFLINE" \
--pretty=yes \

View File

@@ -42,8 +42,8 @@ label:gpt
name="loop${1?}-part1"
EOF
LOOP=$(losetup -P --show -f "/tmp/TEST-60-MOUNT-RATELIMIT-dependencies-${1?}.img")
udevadm wait --settle --timeout=10 "${LOOP}"
udevadm lock --device="${LOOP}" mkfs.ext4 -L "partname${1?}-1" "${LOOP}p1"
udevadm wait --settle --timeout=30 "${LOOP}"
udevadm lock --timeout=30 --device="${LOOP}" mkfs.ext4 -L "partname${1?}-1" "${LOOP}p1"
}
check_dependencies() {

View File

@@ -214,7 +214,6 @@ testcase_nvme_basic() {
)
done
udevadm settle
ls /dev/disk/by-id
for i in "${expected_symlinks[@]}"; do
udevadm wait --settle --timeout=30 "$i"
@@ -250,7 +249,7 @@ testcase_virtio_scsi_identically_named_partitions() {
fi
for ((i = 0; i < num_disk; i++)); do
udevadm lock --device "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" \
udevadm lock --timeout=30 --device "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" \
sfdisk "/dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive$i" <<EOF
label: gpt
@@ -258,7 +257,7 @@ $(for ((j = 1; j <= num_part; j++)); do echo 'name="Hello world", size=2M'; done
EOF
done
udevadm settle
udevadm settle --timeout=30
lsblk --noheadings -a -o NAME,PARTLABEL
[[ "$(lsblk --noheadings -a -o NAME,PARTLABEL | grep -c "Hello world")" -eq "$((num_part * num_disk))" ]]
}
@@ -283,7 +282,7 @@ blacklist {
}
EOF
udevadm lock --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000 \
udevadm lock --timeout=30 --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000 \
sfdisk /dev/disk/by-id/wwn-0xdeaddeadbeef0000 <<EOF
label: gpt
@@ -291,19 +290,19 @@ name="first_partition", size=5M
uuid="deadbeef-dead-dead-beef-000000000000", name="failover_part", size=5M
EOF
# Partitioning triggers a synthesized event. Wait for the event being finished.
udevadm settle
udevadm settle --timeout=30
udevadm lock --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2 \
udevadm lock --timeout=30 --device /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2 \
mkfs.ext4 -U "deadbeef-dead-dead-beef-111111111111" -L "failover_vol" /dev/disk/by-id/wwn-0xdeaddeadbeef0000-part2
# Making filesystem triggers a synthesized event. Wait for the event being finished.
udevadm settle
udevadm settle --timeout=30
modprobe -v dm_multipath
systemctl start multipathd.service
systemctl status multipathd.service
# multipathd touches many devices on start. multipath command may fail if it is invoked before the
# initial setup finished. Let's wait for a while.
udevadm settle
udevadm settle --timeout=30
multipath -ll
ls -l /dev/disk/by-id/
@@ -428,7 +427,7 @@ EOF
# initialize partition table
for disk in {0..9}; do
echo 'label: gpt' | udevadm lock --device="${devices[$disk]}" sfdisk -q "${devices[$disk]}"
echo 'label: gpt' | udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q "${devices[$disk]}"
done
# Delete the partitions, immediately recreate them, wait for udev to settle
@@ -440,9 +439,9 @@ EOF
for ((i = 1; i <= iterations; i++)); do
for disk in {0..9}; do
if ((disk % 2 == i % 2)); then
udevadm lock --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
else
udevadm lock --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$partscript" &
udevadm lock --timeout=30 --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$partscript" &
fi
running[$disk]=$!
done
@@ -518,7 +517,7 @@ EOF
for ((i = 1; i <= iterations; i++)); do
for disk in {0..9}; do
udevadm lock --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
udevadm lock --timeout="$timeout" --device="${devices[$disk]}" sfdisk -q --delete "${devices[$disk]}" &
running[$disk]=$!
done
@@ -528,7 +527,7 @@ EOF
done
for disk in {0..9}; do
udevadm lock --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$script_dir/partscript-$i" &
udevadm lock --timeout="$timeout" --device="${devices[$disk]}" sfdisk -q -X gpt "${devices[$disk]}" <"$script_dir/partscript-$i" &
running[$disk]=$!
done
@@ -744,7 +743,7 @@ testcase_btrfs_basic() {
echo "Single device: default settings"
uuid="deadbeef-dead-dead-beef-000000000000"
label="btrfs_root"
udevadm lock --device="${devices[0]}" mkfs.btrfs -f -L "$label" -U "$uuid" "${devices[0]}"
udevadm lock --timeout=30 --device="${devices[0]}" mkfs.btrfs -f -L "$label" -U "$uuid" "${devices[0]}"
udevadm wait --settle --timeout=30 "${devices[0]}" "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label"
btrfs filesystem show
helper_check_device_symlinks
@@ -753,7 +752,7 @@ testcase_btrfs_basic() {
echo "Multiple devices: using partitions, data: single, metadata: raid1"
uuid="deadbeef-dead-dead-beef-000000000001"
label="btrfs_mpart"
udevadm lock --device="${devices[0]}" sfdisk --wipe=always "${devices[0]}" <<EOF
udevadm lock --timeout=30 --device="${devices[0]}" sfdisk --wipe=always "${devices[0]}" <<EOF
label: gpt
name="diskpart1", size=85M
@@ -762,7 +761,7 @@ name="diskpart3", size=85M
name="diskpart4", size=85M
EOF
udevadm wait --settle --timeout=30 /dev/disk/by-partlabel/diskpart{1..4}
udevadm lock --device="${devices[0]}" mkfs.btrfs -f -d single -m raid1 -L "$label" -U "$uuid" /dev/disk/by-partlabel/diskpart{1..4}
udevadm lock --timeout=30 --device="${devices[0]}" mkfs.btrfs -f -d single -m raid1 -L "$label" -U "$uuid" /dev/disk/by-partlabel/diskpart{1..4}
udevadm wait --settle --timeout=30 "/dev/disk/by-uuid/$uuid" "/dev/disk/by-label/$label"
btrfs filesystem show
helper_check_device_symlinks
@@ -774,6 +773,7 @@ EOF
uuid="deadbeef-dead-dead-beef-000000000002"
label="btrfs_mdisk"
udevadm lock \
--timeout=30 \
--device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs0 \
--device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs1 \
--device=/dev/disk/by-id/scsi-0systemd_foobar_deadbeefbtrfs2 \
@@ -798,7 +798,7 @@ EOF
for ((i = 0; i < ${#devices[@]}; i++)); do
# Intentionally use weaker cipher-related settings, since we don't care
# about security here as it's a throwaway LUKS partition
udevadm lock --device="${devices[$i]}" \
udevadm lock --timeout=30 --device="${devices[$i]}" \
cryptsetup luksFormat -q \
--use-urandom --pbkdf pbkdf2 --pbkdf-force-iterations 1000 \
--uuid "deadbeef-dead-dead-beef-11111111111$i" --label "encdisk$i" "${devices[$i]}" /etc/btrfs_keyfile
@@ -815,6 +815,7 @@ EOF
ls -l /dev/mapper/encbtrfs{0..3}
# Create a multi-device btrfs filesystem on the LUKS devices
udevadm lock \
--timeout=30 \
--device=/dev/mapper/encbtrfs0 \
--device=/dev/mapper/encbtrfs1 \
--device=/dev/mapper/encbtrfs2 \
@@ -858,7 +859,7 @@ EOF
: >/etc/crypttab
rm -fr "$mpoint"
systemctl daemon-reload
udevadm settle
udevadm settle --timeout=30
}
testcase_iscsi_lvm() {
@@ -925,7 +926,7 @@ testcase_iscsi_lvm() {
mpoint="$(mktemp -d /iscsi_storeXXX)"
expected_symlinks=()
# Use the first device as it's configured with larger capacity
udevadm lock --device "${devices[0]}" mkfs.ext4 -L iscsi_store "${devices[0]}"
udevadm lock --timeout=30 --device "${devices[0]}" mkfs.ext4 -L iscsi_store "${devices[0]}"
udevadm wait --settle --timeout=30 "${devices[0]}"
mount "${devices[0]}" "$mpoint"
for i in {1..4}; do
@@ -1012,15 +1013,15 @@ testcase_long_sysfs_path() {
stat "/sys/block/${dev}"
readlink -f "/sys/block/${dev}/dev"
udevadm lock --device "/dev/${dev}" sfdisk "/dev/${dev}" <<EOF
udevadm lock --timeout=30 --device "/dev/${dev}" sfdisk "/dev/${dev}" <<EOF
label: gpt
name="test_swap", size=32M
uuid="deadbeef-dead-dead-beef-000000000000", name="test_part", size=5M
EOF
udevadm settle
udevadm lock --device "/dev/${dev}1" mkswap -U "deadbeef-dead-dead-beef-111111111111" -L "swap_vol" "/dev/${dev}1"
udevadm lock --device "/dev/${dev}2" mkfs.ext4 -U "deadbeef-dead-dead-beef-222222222222" -L "data_vol" "/dev/${dev}2"
udevadm settle --timeout=30
udevadm lock --timeout=30 --device "/dev/${dev}1" mkswap -U "deadbeef-dead-dead-beef-111111111111" -L "swap_vol" "/dev/${dev}1"
udevadm lock --timeout=30 --device "/dev/${dev}2" mkfs.ext4 -U "deadbeef-dead-dead-beef-222222222222" -L "data_vol" "/dev/${dev}2"
udevadm wait --settle --timeout=30 "${expected_symlinks[@]}"
# Try to mount the data partition manually (using its label)
@@ -1040,7 +1041,7 @@ EOF
swapon -v -L swap_vol
swapoff -v -L swap_vol
udevadm settle
udevadm settle --timeout=30
logfile="$(mktemp)"
# Check state of affairs after https://github.com/systemd/systemd/pull/22759
@@ -1258,7 +1259,7 @@ fi
echo "TEST_FUNCTION_NAME=$TEST_FUNCTION_NAME"
"$TEST_FUNCTION_NAME"
udevadm settle
udevadm settle --timeout=60
echo "Check if all symlinks under /dev/disk/ are valid (post-test)"
helper_check_device_symlinks

View File

@@ -87,7 +87,7 @@ test_one() {
udevadm wait --timeout=30 --settle "${DM_NODE}"
mkfs.ext4 -U "${FS_UUID}" "${DM_NODE}"
# Wait for synthetic events being processed.
udevadm settle
udevadm settle --timeout=30
integritysetup close "${DM_NAME}"
udevadm wait --timeout=30 --settle --removed "${DM_NODE}"

View File

@@ -18,7 +18,7 @@ assert_rc 0 /usr/lib/systemd/systemd-sysctl --strict /tmp/foo.conf
if ! systemd-detect-virt --quiet --container; then
ip link add hoge type dummy
udevadm wait /sys/class/net/hoge
udevadm wait --timeout=30 /sys/class/net/hoge
cat >/tmp/foo.conf <<EOF
net.ipv4.conf.*.drop_gratuitous_arp=1

View File

@@ -25,7 +25,7 @@ systemd-run -u teststoragetm.service -p Type=notify -p "Environment=SYSTEMD_NVME
NVME_DEVICE="/dev/disk/by-id/nvme-uuid.${NVME_UUID:?}"
nvme connect-all -vv -t tcp -a 127.0.0.1 -s 16858 --hostnqn="$(nvme gen-hostnqn)"
udevadm wait --settle "$NVME_DEVICE"
udevadm wait --settle --timeout=30 "$NVME_DEVICE"
dd if="$NVME_DEVICE" bs=1024 | cmp /var/tmp/storagetm.test -

View File

@@ -77,7 +77,7 @@ cleanup_image() (
unset LOOPDEV
fi
udevadm settle
udevadm settle --timeout=30
rm -rf "${IMAGE_DIR}"
unset IMAGE_DIR
@@ -101,7 +101,7 @@ EOF
LOOPDEV="$(losetup --show -P -f "${IMAGE_DIR}/image")"
sfdisk "$LOOPDEV" <"${IMAGE_DIR}/partscript"
udevadm settle
udevadm settle --timeout=30
mkfs.vfat -n esp "${LOOPDEV}p1"
mkfs.ext4 -L root "${LOOPDEV}p2"
@@ -158,7 +158,7 @@ cleanup_raid() (
mdadm --misc --force --zero-superblock "${LOOPDEV2}p2"
fi
udevadm settle
udevadm settle --timeout=30
if [[ -n "${LOOPDEV1:-}" ]]; then
mdadm --misc --force --zero-superblock "${LOOPDEV1}p1"
@@ -174,7 +174,7 @@ cleanup_raid() (
unset LOOPDEV2
fi
udevadm settle
udevadm settle --timeout=30
rm -rf "${IMAGE_DIR}"
@@ -210,7 +210,7 @@ EOF
sfdisk "$LOOPDEV1" <"${IMAGE_DIR}/partscript"
sfdisk "$LOOPDEV2" <"${IMAGE_DIR}/partscript"
udevadm settle
udevadm settle --timeout=30
printf 'y\ny\n' | mdadm --create /dev/md/raid-esp --name "raid-esp" "${LOOPDEV1}p1" "${LOOPDEV2}p1" -v -f --level=1 --raid-devices=2
mkfs.vfat /dev/md/raid-esp

View File

@@ -46,7 +46,7 @@ systemd-umount "$WORK_DIR/overlay"
dd if=/dev/zero of="$WORK_DIR/simple.img" bs=1M count=16
mkfs.ext4 -L sd-mount-test "$WORK_DIR/simple.img"
LOOP="$(losetup --show --find "$WORK_DIR/simple.img")"
udevadm wait --timeout 60 --settle "$LOOP"
udevadm wait --timeout=60 --settle "$LOOP"
# Also wait for the .device unit for the loop device is active. Otherwise, the .device unit activation
# that is triggered by the .mount unit introduced by systemd-mount below may time out.
timeout 60 bash -c "until systemctl is-active $LOOP; do sleep 1; done"
@@ -139,7 +139,7 @@ systemd-mount --discover "$WORK_DIR/simple.img"
# We can access files in the image even if the loopback block device is not initialized by udevd.
test -e /run/media/system/simple.img/foo.bar
# systemd-mount --list and systemd-umount require the loopback block device is initialized by udevd.
udevadm settle --timeout 30
udevadm settle --timeout=30
assert_in "/dev/loop.* ext4 +sd-mount-test" "$(systemd-mount --list --full)"
LOOP_AUTO=$(systemd-mount --list --full --no-legend | awk '$7 == "sd-mount-test" { print $1 }')
LOOP_AUTO_DEVPATH=$(udevadm info --query property --property DEVPATH --value "$LOOP_AUTO")