]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev-rules: terminate log messages with period
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 1 Jun 2023 01:06:59 +0000 (10:06 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 5 Jun 2023 02:21:28 +0000 (11:21 +0900)
src/udev/udev-rules.c
src/udev/udevadm-verify.c
test/units/testsuite-17.11.sh

index e5a25bd1191cf02b7350e1a00fabb295e27afd51..646d4829c118182059dcdcbe315c92cd34b038c8 100644 (file)
@@ -304,7 +304,7 @@ static void log_unknown_owner(sd_device *dev, UdevRuleLine *line, int error, con
 
         if (IN_SET(abs(error), ENOENT, ESRCH))
                 log_udev_rule_internal(dev, line->rule_file, line->line_number, LOG_ERR, error,
-                                       "Unknown %s '%s', ignoring", entity, name);
+                                       "Unknown %s '%s', ignoring.", entity, name);
         else
                 log_udev_rule_internal(dev, line->rule_file, line->line_number, LOG_ERR, error,
                                        "Failed to resolve %s '%s', ignoring: %m", entity, name);
@@ -844,7 +844,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
 
                         cmd = udev_builtin_lookup(value);
                         if (cmd >= 0) {
-                                log_line_debug(rule_line, "Found builtin command '%s' for %s, replacing attribute", value, key);
+                                log_line_debug(rule_line, "Found builtin command '%s' for %s, replacing attribute.", value, key);
                                 r = rule_line_add_token(rule_line, TK_M_IMPORT_BUILTIN, op, value, UDEV_BUILTIN_CMD_TO_PTR(cmd));
                         } else
                                 r = rule_line_add_token(rule_line, TK_M_IMPORT_PROGRAM, op, value, NULL);
@@ -940,7 +940,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
                         check_value_format_and_warn(rule_line, key, value, true);
                         r = rule_line_add_token(rule_line, TK_A_OWNER, op, value, NULL);
                 } else {
-                        log_line_debug(rule_line, "User name resolution is disabled, ignoring %s=%s", key, value);
+                        log_line_debug(rule_line, "User name resolution is disabled, ignoring %s=\"%s\".", key, value);
                         return 0;
                 }
         } else if (streq(key, "GROUP")) {
@@ -968,7 +968,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
                         check_value_format_and_warn(rule_line, key, value, true);
                         r = rule_line_add_token(rule_line, TK_A_GROUP, op, value, NULL);
                 } else {
-                        log_line_debug(rule_line, "Resolving group name is disabled, ignoring GROUP=\"%s\"", value);
+                        log_line_debug(rule_line, "Resolving group name is disabled, ignoring GROUP=\"%s\".", value);
                         return 0;
                 }
         } else if (streq(key, "MODE")) {
@@ -1013,7 +1013,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
                         cmd = udev_builtin_lookup(value);
                         if (cmd < 0)
                                 return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL),
-                                                             "Unknown builtin command '%s', ignoring", value);
+                                                             "Unknown builtin command '%s', ignoring.", value);
                         r = rule_line_add_token(rule_line, TK_A_RUN_BUILTIN, op, value, UDEV_BUILTIN_CMD_TO_PTR(cmd));
                 } else
                         return log_line_invalid_attr(rule_line, key);
@@ -1043,7 +1043,7 @@ static int parse_token(UdevRuleLine *rule_line, const char *key, char *attr, Ude
                 SET_FLAG(rule_line->type, LINE_HAS_LABEL, true);
                 return 1;
         } else
-                return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL), "Invalid key '%s'", key);
+                return log_line_error_errno(rule_line, SYNTHETIC_ERRNO(EINVAL), "Invalid key '%s'.", key);
         if (r < 0)
                 return log_oom();
 
@@ -1274,7 +1274,7 @@ static void rule_resolve_goto(UdevRuleFile *rule_file) {
                         }
 
                 if (!line->goto_line) {
-                        log_line_error(line, "GOTO=\"%s\" has no matching label, ignoring",
+                        log_line_error(line, "GOTO=\"%s\" has no matching label, ignoring.",
                                        line->goto_label);
 
                         SET_FLAG(line->type, LINE_HAS_GOTO, false);
@@ -1424,11 +1424,11 @@ static void udev_check_conflicts_duplicates(UdevRuleLine *line) {
 
                         if (new_duplicates) {
                                 duplicates = new_duplicates;
-                                log_line_warning(line, "duplicate expressions");
+                                log_line_warning(line, "duplicate expressions.");
                         }
                         if (new_conflicts) {
                                 conflicts = new_conflicts;
-                                log_line_error(line, "conflicting match expressions, the line has no effect");
+                                log_line_error(line, "conflicting match expressions, the line has no effect.");
                         }
                         if (conflicts && duplicates)
                                 return;
@@ -1544,7 +1544,7 @@ int udev_rules_parse_file(UdevRules *rules, const char *filename, bool extra_che
                 }
 
                 if (ignore_line)
-                        log_file_error(rule_file, line_nr, "Line is too long, ignored");
+                        log_file_error(rule_file, line_nr, "Line is too long, ignored.");
                 else if (len > 0)
                         (void) rule_add_line(rule_file, line, line_nr, extra_checks);
 
@@ -1554,7 +1554,7 @@ int udev_rules_parse_file(UdevRules *rules, const char *filename, bool extra_che
 
         if (continuation)
                 log_file_error(rule_file, line_nr,
-                               "Unexpected EOF after line continuation, line ignored");
+                               "Unexpected EOF after line continuation, line ignored.");
 
         rule_resolve_goto(rule_file);
 
index 58d35fef13392753e83124e0de6b404440576088..cf9ad67b0488477907f086ce0c3a4db8e4de5b3f 100644 (file)
@@ -122,7 +122,7 @@ static int verify_rules_file(UdevRules *rules, const char *fname) {
         unsigned mask = (1U << LOG_ERR) | (1U << LOG_WARNING);
         if (issues & mask)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL),
-                                       "%s: udev rules check failed", fname);
+                                       "%s: udev rules check failed.", fname);
 
         return 0;
 }
@@ -215,7 +215,7 @@ int verify_main(int argc, char *argv[], void *userdata) {
                         return log_error_errno(r, "Failed to enumerate rules files: %m");
                 if (arg_root && strv_isempty(files))
                         return log_error_errno(SYNTHETIC_ERRNO(ENOENT),
-                                               "No rules files found in %s", arg_root);
+                                               "No rules files found in %s.", arg_root);
 
                 return verify_rules(rules, files);
         }
index 56e9ac24ac9cf24f9b01b85abd8b484ff8208522..765a30df298a2a135db1158702c9ca04bd9c1c2b 100755 (executable)
@@ -168,16 +168,16 @@ assert_0 "${rules}"
 printf 'RUN+="/bin/true"%8176s\\\n #\n' ' ' ' ' >"${rules}"
 echo >>"${rules}"
 cat >"${exp}" <<EOF
-${rules}:5 Line is too long, ignored
-${rules}: udev rules check failed
+${rules}:5 Line is too long, ignored.
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
 
 printf '\\\n' >"${rules}"
 cat >"${exp}" <<EOF
-${rules}:1 Unexpected EOF after line continuation, line ignored
-${rules}: udev rules check failed
+${rules}:1 Unexpected EOF after line continuation, line ignored.
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -191,7 +191,7 @@ test_syntax_error() {
     printf '%s\n' "${rule}" >"${rules}"
     cat >"${exp}" <<EOF
 ${rules}:1 ${msg}
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
     cp "${workdir}/default_output_1_fail" "${exo}"
     assert_1 "${rules}"
@@ -273,12 +273,12 @@ test_syntax_error 'OWNER{a}="b"' 'Invalid attribute for OWNER.'
 test_syntax_error 'OWNER-="b"' 'Invalid operator for OWNER.'
 test_syntax_error 'OWNER!="b"' 'Invalid operator for OWNER.'
 test_syntax_error 'OWNER+="0"' "OWNER key takes '=' or ':=' operator, assuming '='."
-test_syntax_error 'OWNER=":nosuchuser:"' "Unknown user ':nosuchuser:', ignoring"
+test_syntax_error 'OWNER=":nosuchuser:"' "Unknown user ':nosuchuser:', ignoring."
 test_syntax_error 'GROUP{a}="b"' 'Invalid attribute for GROUP.'
 test_syntax_error 'GROUP-="b"' 'Invalid operator for GROUP.'
 test_syntax_error 'GROUP!="b"' 'Invalid operator for GROUP.'
 test_syntax_error 'GROUP+="0"' "GROUP key takes '=' or ':=' operator, assuming '='."
-test_syntax_error 'GROUP=":nosuchgroup:"' "Unknown group ':nosuchgroup:', ignoring"
+test_syntax_error 'GROUP=":nosuchgroup:"' "Unknown group ':nosuchgroup:', ignoring."
 test_syntax_error 'MODE{a}="b"' 'Invalid attribute for MODE.'
 test_syntax_error 'MODE-="b"' 'Invalid operator for MODE.'
 test_syntax_error 'MODE!="b"' 'Invalid operator for MODE.'
@@ -292,30 +292,30 @@ test_syntax_error 'SECLABEL{a}:="b"' "SECLABEL key takes '=' or '+=' operator, a
 test_syntax_error 'RUN=="b"' 'Invalid operator for RUN.'
 test_syntax_error 'RUN-="b"' 'Invalid operator for RUN.'
 test_syntax_error 'RUN="%"' 'Invalid value "%" for RUN (char 1: invalid substitution type), ignoring.'
-test_syntax_error 'RUN{builtin}+="foo"' "Unknown builtin command 'foo', ignoring"
+test_syntax_error 'RUN{builtin}+="foo"' "Unknown builtin command 'foo', ignoring."
 test_syntax_error 'GOTO{a}="b"' 'Invalid attribute for GOTO.'
 test_syntax_error 'GOTO=="b"' 'Invalid operator for GOTO.'
-test_syntax_error 'NAME="a", GOTO="b"' 'GOTO="b" has no matching label, ignoring'
+test_syntax_error 'NAME="a", GOTO="b"' 'GOTO="b" has no matching label, ignoring.'
 test_syntax_error 'GOTO="a", GOTO="b"
 LABEL="a"' 'Contains multiple GOTO keys, ignoring GOTO="b".'
 test_syntax_error 'LABEL{a}="b"' 'Invalid attribute for LABEL.'
 test_syntax_error 'LABEL=="b"' 'Invalid operator for LABEL.'
 test_syntax_error 'LABEL="b"' 'LABEL="b" is unused.'
-test_syntax_error 'a="b"' "Invalid key 'a'"
-test_syntax_error 'KERNEL=="", KERNEL=="?*", NAME="a"' 'conflicting match expressions, the line has no effect'
-test_syntax_error 'KERNEL=="abc", KERNEL!="abc", NAME="b"' 'conflicting match expressions, the line has no effect'
-test_syntax_error 'KERNEL=="|a|b", KERNEL!="b|a|", NAME="c"' 'conflicting match expressions, the line has no effect'
-test_syntax_error 'KERNEL=="a|b", KERNEL=="c|d|e", NAME="f"' 'conflicting match expressions, the line has no effect'
+test_syntax_error 'a="b"' "Invalid key 'a'."
+test_syntax_error 'KERNEL=="", KERNEL=="?*", NAME="a"' 'conflicting match expressions, the line has no effect.'
+test_syntax_error 'KERNEL=="abc", KERNEL!="abc", NAME="b"' 'conflicting match expressions, the line has no effect.'
+test_syntax_error 'KERNEL=="|a|b", KERNEL!="b|a|", NAME="c"' 'conflicting match expressions, the line has no effect.'
+test_syntax_error 'KERNEL=="a|b", KERNEL=="c|d|e", NAME="f"' 'conflicting match expressions, the line has no effect.'
 # shellcheck disable=SC2016
 test_syntax_error 'ENV{DISKSEQ}=="?*", ENV{DEVTYPE}!="partition", ENV{DISKSEQ}!="?*", ENV{ID_IGNORE_DISKSEQ}!="1", SYMLINK+="disk/by-diskseq/$env{DISKSEQ}"' \
-                  'conflicting match expressions, the line has no effect'
-test_syntax_error 'ACTION=="a*", ACTION=="bc*", NAME="d"' 'conflicting match expressions, the line has no effect'
-test_syntax_error 'ACTION=="a*|bc*", ACTION=="d*|ef*", NAME="g"' 'conflicting match expressions, the line has no effect'
-test_syntax_error 'KERNEL!="", KERNEL=="?*", NAME="a"' 'duplicate expressions'
-test_syntax_error 'KERNEL=="|a|b", KERNEL=="b|a|", NAME="c"' 'duplicate expressions'
+                  'conflicting match expressions, the line has no effect.'
+test_syntax_error 'ACTION=="a*", ACTION=="bc*", NAME="d"' 'conflicting match expressions, the line has no effect.'
+test_syntax_error 'ACTION=="a*|bc*", ACTION=="d*|ef*", NAME="g"' 'conflicting match expressions, the line has no effect.'
+test_syntax_error 'KERNEL!="", KERNEL=="?*", NAME="a"' 'duplicate expressions.'
+test_syntax_error 'KERNEL=="|a|b", KERNEL=="b|a|", NAME="c"' 'duplicate expressions.'
 # shellcheck disable=SC2016
 test_syntax_error 'ENV{DISKSEQ}=="?*", ENV{DEVTYPE}!="partition", ENV{DISKSEQ}=="?*", ENV{ID_IGNORE_DISKSEQ}!="1", SYMLINK+="disk/by-diskseq/$env{DISKSEQ}"' \
-                  'duplicate expressions'
+                  'duplicate expressions.'
 test_syntax_error ',ACTION=="a", NAME="b"' 'Stray leading comma.'
 test_syntax_error ' ,ACTION=="a", NAME="b"' 'Stray leading comma.'
 test_syntax_error ', ACTION=="a", NAME="b"' 'Stray leading comma.'
@@ -342,9 +342,9 @@ assert_0 "${rules}"
 
 echo 'GOTO="a"' >"${rules}"
 cat >"${exp}" <<EOF
-${rules}:1 GOTO="a" has no matching label, ignoring
+${rules}:1 GOTO="a" has no matching label, ignoring.
 ${rules}:1 The line has no effect any more, dropping.
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -362,7 +362,7 @@ LABEL="b"
 EOF
 cat >"${exp}" <<EOF
 ${rules}:3 LABEL="b" is unused.
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -373,10 +373,10 @@ LABEL="a", LABEL="b"
 EOF
 cat >"${exp}" <<EOF
 ${rules}:2 Contains multiple LABEL keys, ignoring LABEL="a".
-${rules}:1 GOTO="a" has no matching label, ignoring
+${rules}:1 GOTO="a" has no matching label, ignoring.
 ${rules}:1 The line has no effect any more, dropping.
 ${rules}:2 LABEL="b" is unused.
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -385,9 +385,9 @@ cat >"${rules}" <<'EOF'
 KERNEL!="", KERNEL=="?*", KERNEL=="", NAME="a"
 EOF
 cat >"${exp}" <<EOF
-${rules}:1 duplicate expressions
-${rules}:1 conflicting match expressions, the line has no effect
-${rules}: udev rules check failed
+${rules}:1 duplicate expressions.
+${rules}:1 conflicting match expressions, the line has no effect.
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -398,7 +398,7 @@ EOF
 cat >"${exp}" <<EOF
 ${rules}:1 A comma between tokens is expected.
 ${rules}:1 Whitespace between tokens is expected.
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"
@@ -409,7 +409,7 @@ EOF
 cat >"${exp}" <<EOF
 ${rules}:1 Stray whitespace before comma.
 ${rules}:1 Whitespace after comma is expected.
-${rules}: udev rules check failed
+${rules}: udev rules check failed.
 EOF
 cp "${workdir}/default_output_1_fail" "${exo}"
 assert_1 "${rules}"