X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fudev%2Fudevadm-test.c;h=fe092cfbd9af4bc33d580f6bd6b76240a56178cd;hb=c0a43734ca84a3c9170d4a2d7f4d329b9ef47abc;hp=52cc26c1d6c9262fcc1893a8bafd1c4b6fe2fdbe;hpb=dd5eddd28a74a49607a8fffcaf960040dba98479;p=elogind.git diff --git a/src/udev/udevadm-test.c b/src/udev/udevadm-test.c index 52cc26c1d..fe092cfbd 100644 --- a/src/udev/udevadm-test.c +++ b/src/udev/udevadm-test.c @@ -17,23 +17,29 @@ */ #include -#include #include #include #include #include -#include -#include #include -#include #include #include #include "udev.h" #include "udev-util.h" -static int adm_test(struct udev *udev, int argc, char *argv[]) -{ +static void help(void) { + + printf("%s test OPTIONS \n\n" + "Test an event run.\n" + " -h --help Show this help\n" + " --version Show package version\n" + " -a --action=ACTION Set action string\n" + " -N --resolve-names=early|late|never When to resolve names\n" + , program_invocation_short_name); +} + +static int adm_test(struct udev *udev, int argc, char *argv[]) { int resolve_names = 1; char filename[UTIL_PATH_SIZE]; const char *action = "add"; @@ -73,11 +79,7 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) } break; case 'h': - printf("Usage: udevadm test OPTIONS \n" - " -a,--action=ACTION set action string\n" - " -N,--resolve-names=early|late|never when to resolve names\n" - " -h,--help print this help string\n" - "\n"); + help(); exit(EXIT_SUCCESS); case '?': exit(EXIT_FAILURE); @@ -115,18 +117,16 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) strscpy(filename, sizeof(filename), syspath); util_remove_trailing_chars(filename, '/'); - dev = udev_device_new_from_syspath(udev, filename); + dev = udev_device_new_from_synthetic_event(udev, filename, action); if (dev == NULL) { fprintf(stderr, "unable to open device '%s'\n", filename); rc = 4; goto out; } - /* skip reading of db, but read kernel parameters */ + /* don't read info from the db */ udev_device_set_info_loaded(dev); - udev_device_read_uevent_file(dev); - udev_device_set_action(dev, action); event = udev_event_new(dev); sigfillset(&mask); @@ -138,7 +138,11 @@ static int adm_test(struct udev *udev, int argc, char *argv[]) goto out; } - udev_event_execute_rules(event, 30 * USEC_PER_SEC, rules, &sigmask_orig); + udev_event_execute_rules(event, + 60 * USEC_PER_SEC, 20 * USEC_PER_SEC, + NULL, + rules, + &sigmask_orig); udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) printf("%s=%s\n", udev_list_entry_get_name(entry), udev_list_entry_get_value(entry)); @@ -159,6 +163,6 @@ out: const struct udevadm_cmd udevadm_test = { .name = "test", .cmd = adm_test, - .help = "test an event run", + .help = "Test an event run", .debug = true, };