• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

systemd / systemd / 18810271929

25 Oct 2025 04:50PM UTC coverage: 72.26%. Remained the same
18810271929

push

github

YHNdnzj
core/exec-invoke: relax restriction for process name length

Previously, we limit the length of process name by 8.
This relax the restriction then at least process comm or
program_invocation_name contains the untrucated process name.

Closes #38367.

24 of 28 new or added lines in 3 files covered. (85.71%)

486 existing lines in 52 files now uncovered.

304829 of 421852 relevant lines covered (72.26%)

1095984.64 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.23
/src/test/test-parse-argument.c
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2

3
#include <signal.h>
4

5
#include "sd-json.h"
6

7
#include "parse-argument.h"
8
#include "path-util.h"
9
#include "stdio-util.h"
10
#include "tests.h"
11

12
TEST(parse_json_argument) {
1✔
13
        sd_json_format_flags_t flags = SD_JSON_FORMAT_PRETTY;
1✔
14

15
        assert_se(parse_json_argument("help", &flags) == 0);
1✔
16
        assert_se(flags == SD_JSON_FORMAT_PRETTY);
1✔
17

18
        assert_se(parse_json_argument("off", &flags) == 1);
1✔
19
        assert_se(flags == SD_JSON_FORMAT_OFF);
1✔
20
}
1✔
21

22
TEST(parse_path_argument) {
1✔
23
        _cleanup_free_ char *path = NULL, *file = NULL;
×
24

25
        assert_se(parse_path_argument("help", false, &path) == 0);
1✔
26
        ASSERT_OK(path_extract_filename(path, &file));
1✔
27
        ASSERT_STREQ(file, "help");
1✔
28

29
        assert_se(parse_path_argument("/", false, &path) == 0);
1✔
30
        ASSERT_STREQ(path, "/");
1✔
31

32
        assert_se(parse_path_argument("/", true, &path) == 0);
1✔
33
        ASSERT_NULL(path);
1✔
34
}
1✔
35

36
TEST(parse_signal_argument) {
1✔
37
        int  signal = -1;
1✔
38

39
        assert_se(parse_signal_argument("help", &signal) == 0);
1✔
40
        assert_se(signal == -1);
1✔
41

42
        assert_se(parse_signal_argument("list", &signal) == 0);
1✔
43
        assert_se(signal == -1);
1✔
44

45
        assert_se(parse_signal_argument("SIGABRT", &signal) == 1);
1✔
46
        assert_se(signal == SIGABRT);
1✔
47

48
        assert_se(parse_signal_argument("ABRT", &signal) == 1);
1✔
49
        assert_se(signal == SIGABRT);
1✔
50

51
        char buf[DECIMAL_STR_MAX(int)];
1✔
52
        xsprintf(buf, "%d", SIGABRT);
1✔
53
        assert_se(parse_signal_argument(buf, &signal) == 1);
1✔
54
        assert_se(signal == SIGABRT);
1✔
55
}
1✔
56

57
TEST(parse_background_argument) {
1✔
58
        _cleanup_free_ char *arg_bg_good = NULL;
2✔
59

60
        /* Should accept empty string */
61
        assert_se(parse_background_argument("", &arg_bg_good) >= 0);
1✔
62
        ASSERT_STREQ(arg_bg_good, "");
1✔
63

64
        /* Should accept ANSI color codes in palette, 8-bit, or 24-bit format */
65
        assert_se(parse_background_argument("42", &arg_bg_good) >= 0);
1✔
66
        ASSERT_STREQ(arg_bg_good, "42");
1✔
67

68
        assert_se(parse_background_argument("48;5;219", &arg_bg_good) >= 0);
1✔
69
        ASSERT_STREQ(arg_bg_good, "48;5;219");
1✔
70

71
        assert_se(parse_background_argument("48;2;3;141;59", &arg_bg_good) >= 0);
1✔
72
        ASSERT_STREQ(arg_bg_good, "48;2;3;141;59");
1✔
73

UNCOV
74
        _cleanup_free_ char *arg_bg_bad = NULL;
×
75

76
        /* Should reject various invalid arguments */
77
        assert_se(parse_background_argument("42;", &arg_bg_bad) < 0);
1✔
78
        ASSERT_NULL(arg_bg_bad);
1✔
79

80
        assert_se(parse_background_argument(";42", &arg_bg_bad) < 0);
1✔
81
        ASSERT_NULL(arg_bg_bad);
1✔
82

83
        assert_se(parse_background_argument("4;;2", &arg_bg_bad) < 0);
1✔
84
        ASSERT_NULL(arg_bg_bad);
1✔
85

86
        assert_se(parse_background_argument("4a2", &arg_bg_bad) < 0);
1✔
87
        ASSERT_NULL(arg_bg_bad);
1✔
88
}
1✔
89

90
DEFINE_TEST_MAIN(LOG_INFO);
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc