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

systemd / systemd / 15175033720

21 May 2025 10:22PM UTC coverage: 72.079% (+0.03%) from 72.047%
15175033720

push

github

web-flow
Several minor follow-ups for #33995 (#37558)

3 of 3 new or added lines in 1 file covered. (100.0%)

34302 existing lines in 652 files now uncovered.

299232 of 415142 relevant lines covered (72.08%)

700018.81 hits per line

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

90.91
/src/test/test-dev-setup.c
1
/* SPDX-License-Identifier: LGPL-2.1-or-later */
2

3
#include <sys/stat.h>
4

5
#include "capability-util.h"
6
#include "dev-setup.h"
7
#include "mkdir.h"
8
#include "path-util.h"
9
#include "rm-rf.h"
10
#include "tests.h"
11
#include "tmpfile-util.h"
12

13
int main(int argc, char *argv[]) {
1✔
UNCOV
14
        _cleanup_(rm_rf_physical_and_freep) char *p = NULL;
×
15
        _cleanup_free_ char *f = NULL;
1✔
16
        struct stat st;
1✔
17

18
        test_setup_logging(LOG_DEBUG);
1✔
19

20
        if (have_effective_cap(CAP_DAC_OVERRIDE) <= 0)
1✔
UNCOV
21
                return log_tests_skipped("missing capability (CAP_DAC_OVERRIDE)");
×
22

23
        ASSERT_OK(mkdtemp_malloc("/tmp/test-dev-setupXXXXXX", &p));
1✔
24

25
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd"));
1✔
26
        ASSERT_OK(mkdir_p(f, 0755));
1✔
27

28
        ASSERT_OK(make_inaccessible_nodes(f, 1, 1));
1✔
29
        ASSERT_OK(make_inaccessible_nodes(f, 1, 1)); /* 2nd call should be a clean NOP */
1✔
30

31
        free(f);
1✔
32
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/reg"));
1✔
33
        ASSERT_OK_ERRNO(stat(f, &st));
1✔
34
        ASSERT_TRUE(S_ISREG(st.st_mode));
1✔
35
        ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
36

37
        free(f);
1✔
38
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/dir"));
1✔
39
        ASSERT_OK_ERRNO(stat(f, &st));
1✔
40
        ASSERT_TRUE(S_ISDIR(st.st_mode));
1✔
41
        ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
42

43
        free(f);
1✔
44
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/fifo"));
1✔
45
        ASSERT_OK_ERRNO(stat(f, &st));
1✔
46
        ASSERT_TRUE(S_ISFIFO(st.st_mode));
1✔
47
        ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
48

49
        free(f);
1✔
50
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/sock"));
1✔
51
        ASSERT_OK_ERRNO(stat(f, &st));
1✔
52
        ASSERT_TRUE(S_ISSOCK(st.st_mode));
1✔
53
        ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
54

55
        free(f);
1✔
56
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/chr"));
1✔
57
        if (stat(f, &st) < 0)
1✔
UNCOV
58
                ASSERT_EQ(errno, ENOENT);
×
59
        else {
60
                ASSERT_TRUE(S_ISCHR(st.st_mode));
1✔
61
                ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
62
        }
63

64
        free(f);
1✔
65
        f = ASSERT_NOT_NULL(path_join(p, "/run/systemd/inaccessible/blk"));
1✔
66
        if (stat(f, &st) < 0)
1✔
UNCOV
67
                ASSERT_EQ(errno, ENOENT);
×
68
        else {
69
                ASSERT_TRUE(S_ISBLK(st.st_mode));
1✔
70
                ASSERT_EQ(st.st_mode & 07777, 0000U);
1✔
71
        }
72

73
        return EXIT_SUCCESS;
74
}
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