]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/libsystemd/sd-bus/test-bus-creds.c
Merge pull request #33377 from yuwata/strbuf-cleanups
[thirdparty/systemd.git] / src / libsystemd / sd-bus / test-bus-creds.c
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
5b12334d
LP
2
3#include "sd-bus.h"
cf0fbc49 4
5b12334d 5#include "bus-dump.h"
3b3a64d7 6#include "cgroup-util.h"
71be6406 7#include "errno-util.h"
317bb217 8#include "tests.h"
5b12334d
LP
9
10int main(int argc, char *argv[]) {
4afd3348 11 _cleanup_(sd_bus_creds_unrefp) sd_bus_creds *creds = NULL;
5b12334d
LP
12 int r;
13
6d7c4033 14 test_setup_logging(LOG_DEBUG);
9aa8fa70 15
a412a1b9 16 if (IN_SET(cg_unified(), -ENOMEDIUM, -ENOENT))
317bb217 17 return log_tests_skipped("/sys/fs/cgroup/ not available");
3b3a64d7 18
151b9b96 19 r = sd_bus_creds_new_from_pid(&creds, 0, _SD_BUS_CREDS_ALL);
9aa8fa70 20 log_full_errno(r < 0 ? LOG_ERR : LOG_DEBUG, r, "sd_bus_creds_new_from_pid: %m");
5b12334d
LP
21 assert_se(r >= 0);
22
d0b2babf 23 bus_creds_dump(creds, NULL, true);
5b12334d
LP
24
25 creds = sd_bus_creds_unref(creds);
26
151b9b96 27 r = sd_bus_creds_new_from_pid(&creds, 1, _SD_BUS_CREDS_ALL);
71be6406 28 if (!ERRNO_IS_NEG_PRIVILEGE(r)) {
5b12334d
LP
29 assert_se(r >= 0);
30 putchar('\n');
d0b2babf 31 bus_creds_dump(creds, NULL, true);
5b12334d
LP
32 }
33
71be6406
LP
34 creds = sd_bus_creds_unref(creds);
35
36 _cleanup_(sd_bus_unrefp) sd_bus *bus = NULL;
37 r = sd_bus_default_system(&bus);
38 if (r < 0)
39 log_warning_errno(r, "Unable to connect to system bus, skipping rest of test.");
40 else {
41 const char *unique;
42
43 assert_se(sd_bus_get_unique_name(bus, &unique) >= 0);
44
45 r = sd_bus_get_name_creds(bus, unique, _SD_BUS_CREDS_ALL, &creds);
46 log_full_errno(r < 0 ? LOG_ERR : LOG_DEBUG, r, "sd_bus_get_name_creds: %m");
47 assert_se(r >= 0);
48
49 putchar('\n');
50 bus_creds_dump(creds, NULL, true);
51 }
52
5b12334d
LP
53 return 0;
54}