mirror of
https://github.com/systemd/systemd
synced 2024-10-06 16:21:34 +00:00
test-udev: add an optional timeout argument
The tests wants to call some workers with a delay. This implements the delay directly in test-udev so that the caller can be simplified. Note that the argument is to be used by the other test file, so this is purposefully implemented in a simple way.
This commit is contained in:
parent
210cb8d690
commit
fb5578b3c3
|
@ -18,6 +18,7 @@
|
|||
#include "mkdir-label.h"
|
||||
#include "mount-util.h"
|
||||
#include "namespace-util.h"
|
||||
#include "parse-util.h"
|
||||
#include "selinux-util.h"
|
||||
#include "signal-util.h"
|
||||
#include "string-util.h"
|
||||
|
@ -92,9 +93,9 @@ static int run(int argc, char *argv[]) {
|
|||
|
||||
test_setup_logging(LOG_INFO);
|
||||
|
||||
if (!IN_SET(argc, 2, 3))
|
||||
if (!IN_SET(argc, 2, 3, 4))
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"This program needs one or two arguments, %d given", argc - 1);
|
||||
"This program needs between one and three arguments, %d given", argc - 1);
|
||||
|
||||
r = fake_filesystems();
|
||||
if (r < 0)
|
||||
|
@ -123,10 +124,18 @@ static int run(int argc, char *argv[]) {
|
|||
action = argv[1];
|
||||
devpath = argv[2];
|
||||
|
||||
if (argv[3]) {
|
||||
unsigned us;
|
||||
|
||||
r = safe_atou(argv[3], &us);
|
||||
if (r < 0)
|
||||
return log_error_errno(r, "Invalid delay '%s': %m", argv[3]);
|
||||
usleep(us);
|
||||
}
|
||||
|
||||
assert_se(udev_rules_load(&rules, RESOLVE_NAME_EARLY) == 0);
|
||||
|
||||
const char *syspath;
|
||||
syspath = strjoina("/sys", devpath);
|
||||
const char *syspath = strjoina("/sys", devpath);
|
||||
r = device_new_from_synthetic_event(&dev, syspath, action);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to open device '%s'", devpath);
|
||||
|
|
Loading…
Reference in a new issue