mirror of
https://github.com/systemd/systemd.git
synced 2025-03-22 06:50:18 +03:00
udevadm-test: introduce -v/--verbose option to show verbose log messages
Currently this does not show any extra log messages. In later commits, more verbose log messages will be added.
This commit is contained in:
parent
ce2ef96c2b
commit
8846df63fa
@ -880,6 +880,15 @@
|
||||
<xi:include href="version-info.xml" xpointer="v209"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>-v</option></term>
|
||||
<term><option>--verbose</option></term>
|
||||
<listitem>
|
||||
<para>Shows verbose logs in processing udev rules.</para>
|
||||
|
||||
<xi:include href="version-info.xml" xpointer="v258"/>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<xi:include href="standard-options.xml" xpointer="help" />
|
||||
</variablelist>
|
||||
|
@ -69,7 +69,8 @@ _udevadm() {
|
||||
[CONTROL_ARG]='-l --log-priority -p --property -m --children-max -t --timeout'
|
||||
[MONITOR_STANDALONE]='-k --kernel -u --udev -p --property'
|
||||
[MONITOR_ARG]='-s --subsystem-match -t --tag-match'
|
||||
[TEST]='-a --action -N --resolve-names'
|
||||
[TEST_STANDALONE]='-v --verbose'
|
||||
[TEST_ARG]='-a --action -N --resolve-names'
|
||||
[TEST_BUILTIN]='-a --action'
|
||||
[VERIFY]='-N --resolve-names --root --no-summary --no-style'
|
||||
[WAIT]='-t --timeout --initialized=no --removed --settle'
|
||||
@ -216,7 +217,7 @@ _udevadm() {
|
||||
;;
|
||||
|
||||
'test')
|
||||
if __contains_word "$prev" ${OPTS[TEST]}; then
|
||||
if __contains_word "$prev" ${OPTS[TEST_ARG]}; then
|
||||
case $prev in
|
||||
-a|--action)
|
||||
comps=$( udevadm test --action help )
|
||||
@ -225,12 +226,8 @@ _udevadm() {
|
||||
comps='early late never'
|
||||
;;
|
||||
esac
|
||||
COMPREPLY=( $(compgen -W '$comps' -- "$cur") )
|
||||
return 0
|
||||
fi
|
||||
|
||||
if [[ $cur = -* ]]; then
|
||||
comps="${OPTS[COMMON]} ${OPTS[TEST]}"
|
||||
elif [[ $cur = -* ]]; then
|
||||
comps="${OPTS[COMMON]} ${OPTS[TEST_ARG]} ${OPTS[TEST_STANDALONE]}"
|
||||
else
|
||||
comps=$( __get_all_devices )
|
||||
local IFS=$'\n'
|
||||
|
@ -88,6 +88,7 @@ _udevadm_test(){
|
||||
'(-)'{-V,--version}'[Show package version]' \
|
||||
'--action=[The action string.]:actions:(add change remove move online offline bind unbind)' \
|
||||
'--subsystem=[The subsystem string.]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[Show verbose logs.]' \
|
||||
'*::devpath:_files -P /sys/ -W /sys'
|
||||
}
|
||||
|
||||
|
@ -48,6 +48,7 @@ typedef struct UdevEvent {
|
||||
bool name_final;
|
||||
bool devlink_final;
|
||||
bool run_final;
|
||||
bool trace;
|
||||
bool log_level_was_debug;
|
||||
int default_log_level;
|
||||
EventMode event_mode;
|
||||
|
@ -34,6 +34,7 @@
|
||||
static sd_device_action_t arg_action = SD_DEVICE_ADD;
|
||||
static ResolveNameTiming arg_resolve_name_timing = RESOLVE_NAME_EARLY;
|
||||
static const char *arg_syspath = NULL;
|
||||
static bool arg_verbose = false;
|
||||
|
||||
static int help(void) {
|
||||
|
||||
@ -42,7 +43,8 @@ static int help(void) {
|
||||
" -h --help Show this help\n"
|
||||
" -V --version Show package version\n"
|
||||
" -a --action=ACTION|help Set action string\n"
|
||||
" -N --resolve-names=early|late|never When to resolve names\n",
|
||||
" -N --resolve-names=early|late|never When to resolve names\n"
|
||||
" -v --verbose Show verbose logs\n",
|
||||
program_invocation_short_name);
|
||||
|
||||
return 0;
|
||||
@ -52,6 +54,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
static const struct option options[] = {
|
||||
{ "action", required_argument, NULL, 'a' },
|
||||
{ "resolve-names", required_argument, NULL, 'N' },
|
||||
{ "verbose", no_argument, NULL, 'v' },
|
||||
{ "version", no_argument, NULL, 'V' },
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
{}
|
||||
@ -59,7 +62,7 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
|
||||
int r, c;
|
||||
|
||||
while ((c = getopt_long(argc, argv, "a:N:Vh", options, NULL)) >= 0)
|
||||
while ((c = getopt_long(argc, argv, "a:N:vVh", options, NULL)) >= 0)
|
||||
switch (c) {
|
||||
case 'a':
|
||||
r = parse_device_action(optarg, &arg_action);
|
||||
@ -74,6 +77,9 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"--resolve-names= must be early, late or never");
|
||||
break;
|
||||
case 'v':
|
||||
arg_verbose = true;
|
||||
break;
|
||||
case 'V':
|
||||
return print_version();
|
||||
case 'h':
|
||||
@ -105,20 +111,23 @@ int test_main(int argc, char *argv[], void *userdata) {
|
||||
if (r <= 0)
|
||||
return r;
|
||||
|
||||
printf("This program is for debugging only, it does not run any program\n"
|
||||
"specified by a RUN key. It may show incorrect results, because\n"
|
||||
"some values may be different, or not available at a simulation run.\n"
|
||||
"\n");
|
||||
puts("This program is for debugging only, it does not run any program\n"
|
||||
"specified by a RUN key. It may show incorrect results, because\n"
|
||||
"some values may be different, or not available at a simulation run.");
|
||||
|
||||
assert_se(sigprocmask(SIG_SETMASK, NULL, &sigmask_orig) >= 0);
|
||||
|
||||
puts("\nLoading builtins...");
|
||||
udev_builtin_init();
|
||||
puts("Loading builtins done.");
|
||||
|
||||
puts("\nLoading udev rules files...");
|
||||
r = udev_rules_load(&rules, arg_resolve_name_timing);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to read udev rules: %m");
|
||||
goto out;
|
||||
}
|
||||
puts("Loading udev rules files done.");
|
||||
|
||||
r = find_device_with_action(arg_syspath, arg_action, &dev);
|
||||
if (r < 0) {
|
||||
@ -134,12 +143,16 @@ int test_main(int argc, char *argv[], void *userdata) {
|
||||
log_oom();
|
||||
goto out;
|
||||
}
|
||||
event->trace = arg_verbose;
|
||||
|
||||
assert_se(sigfillset(&mask) >= 0);
|
||||
assert_se(sigprocmask(SIG_SETMASK, &mask, &sigmask_orig) >= 0);
|
||||
|
||||
printf("\nProcessing udev rules%s...\n", arg_verbose ? "" : " (verbose logs can be shown by -v/--verbose)");
|
||||
udev_event_execute_rules(event, rules);
|
||||
puts("Processing udev rules done.");
|
||||
|
||||
puts("");
|
||||
printf("%sProperties:%s\n", ansi_highlight(), ansi_normal());
|
||||
FOREACH_DEVICE_PROPERTY(dev, key, value)
|
||||
printf(" %s=%s\n", key, value);
|
||||
|
@ -141,6 +141,7 @@ udevadm test -N early /sys/class/net/$netdev
|
||||
udevadm test -N late /sys/class/net/$netdev
|
||||
udevadm test --resolve-names never /sys/class/net/$netdev
|
||||
(! udevadm test -N hello /sys/class/net/$netdev)
|
||||
udevadm test -v /sys/class/net/$netdev
|
||||
udevadm test -h
|
||||
|
||||
# udevadm test-builtin path_id "$loopdev"
|
||||
|
Loading…
x
Reference in New Issue
Block a user