1 /* SPDX-License-Identifier: LGPL-2.1+ */
5 #include "alloc-util.h"
8 #include "selinux-util.h"
9 #include "string-util.h"
10 #include "time-util.h"
13 static void test_testing(void) {
16 log_info("============ %s ==========", __func__);
18 b = mac_selinux_use();
19 log_info("mac_selinux_use → %s", yes_no(b));
21 b = mac_selinux_use();
22 log_info("mac_selinux_use → %s", yes_no(b));
26 b = mac_selinux_use();
27 log_info("mac_selinux_use → %s", yes_no(b));
29 b = mac_selinux_use();
30 log_info("mac_selinux_use → %s", yes_no(b));
33 static void test_loading(void) {
37 log_info("============ %s ==========", __func__);
39 n1 = now(CLOCK_MONOTONIC);
40 r = mac_selinux_init();
41 n2 = now(CLOCK_MONOTONIC);
42 log_info_errno(r, "mac_selinux_init → %d %.2fs (%m)", r, (n2 - n1)/1e6);
45 static void test_cleanup(void) {
48 log_info("============ %s ==========", __func__);
50 n1 = now(CLOCK_MONOTONIC);
52 n2 = now(CLOCK_MONOTONIC);
53 log_info("mac_selinux_finish → %.2fs", (n2 - n1)/1e6);
56 #if 0 /// UNNEEDED by elogind
57 static void test_misc(const char* fname) {
58 _cleanup_(mac_selinux_freep) char *label = NULL, *label2 = NULL, *label3 = NULL;
60 _cleanup_close_ int fd = -1;
62 log_info("============ %s ==========", __func__);
64 r = mac_selinux_get_our_label(&label);
65 log_info_errno(r, "mac_selinux_get_our_label → %d, \"%s\" (%m)",
68 r = mac_selinux_get_create_label_from_exe(fname, &label2);
69 log_info_errno(r, "mac_selinux_create_label_from_exe → %d, \"%s\" (%m)",
72 fd = socket(AF_INET, SOCK_DGRAM, 0);
75 r = mac_selinux_get_child_mls_label(fd, fname, label2, &label3);
76 log_info_errno(r, "mac_selinux_get_child_mls_label → %d, \"%s\" (%m)",
81 static void test_create_file_prepare(const char* fname) {
84 log_info("============ %s ==========", __func__);
86 r = mac_selinux_create_file_prepare(fname, S_IRWXU);
87 log_info_errno(r, "mac_selinux_create_file_prepare → %d (%m)", r);
89 mac_selinux_create_file_clear();
92 int main(int argc, char **argv) {
93 const char *path = SYSTEMD_BINARY_PATH;
97 log_set_max_level(LOG_DEBUG);
98 log_parse_environment();
102 #if 0 /// UNNEEDED by elogind
105 test_create_file_prepare(path);