1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
3 #include "alloc-util.h"
4 #include "coredump-util.h"
8 static void test_coredump_filter_to_from_string(void) {
9 log_info("/* %s */", __func__
);
11 for (CoredumpFilter i
= 0; i
< _COREDUMP_FILTER_MAX
; i
++) {
14 assert_se(n
= coredump_filter_to_string(i
));
15 log_info("0x%x\t%s", 1<<i
, n
);
16 assert_se(coredump_filter_from_string(n
) == i
);
19 assert_se(coredump_filter_mask_from_string(n
, &f
) == 0);
20 assert_se(f
== 1u << i
);
24 static void test_coredump_filter_mask_from_string(void) {
25 log_info("/* %s */", __func__
);
28 assert_se(coredump_filter_mask_from_string("default", &f
) == 0);
29 assert_se(f
== COREDUMP_FILTER_MASK_DEFAULT
);
31 assert_se(coredump_filter_mask_from_string(" default\tdefault\tdefault ", &f
) == 0);
32 assert_se(f
== COREDUMP_FILTER_MASK_DEFAULT
);
34 assert_se(coredump_filter_mask_from_string("defaulta", &f
) < 0);
35 assert_se(coredump_filter_mask_from_string("default defaulta default", &f
) < 0);
36 assert_se(coredump_filter_mask_from_string("default default defaulta", &f
) < 0);
38 assert_se(coredump_filter_mask_from_string("private-anonymous default", &f
) == 0);
39 assert_se(f
== COREDUMP_FILTER_MASK_DEFAULT
);
41 assert_se(coredump_filter_mask_from_string("shared-file-backed shared-dax", &f
) == 0);
42 assert_se(f
== (1 << COREDUMP_FILTER_SHARED_FILE_BACKED
|
43 1 << COREDUMP_FILTER_SHARED_DAX
));
45 assert_se(coredump_filter_mask_from_string("private-file-backed private-dax 0xF", &f
) == 0);
46 assert_se(f
== (1 << COREDUMP_FILTER_PRIVATE_FILE_BACKED
|
47 1 << COREDUMP_FILTER_PRIVATE_DAX
|
50 assert_se(coredump_filter_mask_from_string("11", &f
) == 0);
53 assert_se(coredump_filter_mask_from_string("0x1101", &f
) == 0);
54 assert_se(f
== 0x1101);
56 assert_se(coredump_filter_mask_from_string("0", &f
) == 0);
59 assert_se(coredump_filter_mask_from_string("all", &f
) == 0);
60 assert_se(FLAGS_SET(f
, (1 << COREDUMP_FILTER_PRIVATE_ANONYMOUS
|
61 1 << COREDUMP_FILTER_SHARED_ANONYMOUS
|
62 1 << COREDUMP_FILTER_PRIVATE_FILE_BACKED
|
63 1 << COREDUMP_FILTER_SHARED_FILE_BACKED
|
64 1 << COREDUMP_FILTER_ELF_HEADERS
|
65 1 << COREDUMP_FILTER_PRIVATE_HUGE
|
66 1 << COREDUMP_FILTER_SHARED_HUGE
|
67 1 << COREDUMP_FILTER_PRIVATE_DAX
|
68 1 << COREDUMP_FILTER_SHARED_DAX
)));
71 int main(int argc
, char **argv
) {
72 test_setup_logging(LOG_INFO
);
74 test_coredump_filter_to_from_string();
75 test_coredump_filter_mask_from_string();