util-linux: Stop udevd to run ptests

The util-linux's ptest uses the SCSI_DEBUG kernel module to create
virtual SCSI disks. The automount feature of udevd will try to mount
these disks by default. Because udevd controls the mount of the disks,
the eject/mount tests will fail or be skipped. This change will stop
udevd before executing the util-linux's ptest and start the daemon
again after all the tests.

This is for eudevd only, systemd-udevd doesn't present this problem
because there are no automount rules.

[YOCTO #13301]

(From OE-Core rev: f7becf0b5743dfbee06b354a086dc553db2b1348)

Signed-off-by: Mariano López <just.another.mariano@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano López
2019-06-13 22:32:40 -05:00
committed by Richard Purdie
parent 3c5fb84222
commit fbee8ff72a
2 changed files with 18 additions and 0 deletions

View File

@@ -318,4 +318,8 @@ do_install_ptest() {
sed -i -e \
'/^TS_CMD_KILL/ s|kill|${PTEST_PATH}/bin/kill|g' \
${D}${PTEST_PATH}/tests/commands.sh
sed -i 's|@base_sbindir@|${base_sbindir}|g' ${D}${PTEST_PATH}/run-ptest
}

View File

@@ -1,5 +1,14 @@
#!/bin/sh
# When udevd (from eudev) is running most eject/mount tests will fail because
# of automount. We need to stop udevd before executing util-linux's tests.
# The systemd-udevd daemon doesn't change the outcome of util-linux's tests.
UDEV_PID="`pidof "@base_sbindir@/udevd"`"
if [ "x$UDEV_PID" != "x" ]; then
/etc/init.d/udev stop
fi
current_path=$(readlink -f $0)
export bindir=$(dirname $current_path)
export PATH=$bindir/bin:$PATH
@@ -27,3 +36,8 @@ do
}'
done
if [ "x$UDEV_PID" != "x" ]; then
/etc/init.d/udev start
fi