diff --git a/src/test/test-udev.c b/src/test/test-udev.c index b5d3eb7bc4..281dbb51f2 100644 --- a/src/test/test-udev.c +++ b/src/test/test-udev.c @@ -113,9 +113,11 @@ static int run(int argc, char *argv[]) { (void) mkdir_parents_label(devname, 0755); (void) sd_device_get_devnum(dev, &devnum); - assert_se(mknod(devname, mode, devnum) == 0); + if (mknod(devname, mode, devnum) < 0) + return log_error_errno(errno, "mknod() failed for '%s': %m", devname); } else { - assert_se(unlink(devname) == 0); + if (unlink(devname) < 0) + return log_error_errno(errno, "unlink('%s') failed: %m", devname); (void) rmdir_parents(devname, "/"); } } diff --git a/test/udev-test.pl b/test/udev-test.pl index eb76ebd72e..957cda541c 100755 --- a/test/udev-test.pl +++ b/test/udev-test.pl @@ -1554,6 +1554,14 @@ sub udev_setup { return 0; } + # check if we are permitted to create block device nodes + my $block_device_filename = $udev_dev . "/sda"; + if (system("mknod", $block_device_filename, "b", "8", "0")) { + warn "unable to create $block_device_filename"; + return 0; + } + unlink $block_device_filename; + system("cp", "-r", "test/sys/", $udev_sys) && die "unable to copy test/sys"; system("rm", "-rf", "$udev_run");