]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/test/test-exit-status.c
ASSERT_STREQ for simple cases
[thirdparty/systemd.git] / src / test / test-exit-status.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2
3 #include "exit-status.h"
4 #include "string-util.h"
5 #include "tests.h"
6
7 TEST(exit_status_to_string) {
8 for (int i = -1; i <= 256; i++) {
9 const char *s, *class;
10
11 s = exit_status_to_string(i, EXIT_STATUS_FULL);
12 class = exit_status_class(i);
13 log_info("%d: %s%s%s%s",
14 i, s ?: "-",
15 class ? " (" : "", strempty(class), class ? ")" : "");
16
17 if (s)
18 assert_se(exit_status_from_string(s) == i);
19 }
20 }
21
22 TEST(exit_status_from_string) {
23 assert_se(exit_status_from_string("11") == 11);
24 assert_se(exit_status_from_string("-1") == -ERANGE);
25 assert_se(exit_status_from_string("256") == -ERANGE);
26 assert_se(exit_status_from_string("foo") == -EINVAL);
27 assert_se(exit_status_from_string("SUCCESS") == 0);
28 assert_se(exit_status_from_string("FAILURE") == 1);
29 }
30
31 TEST(exit_status_NUMA_POLICY) {
32 ASSERT_STREQ(exit_status_to_string(EXIT_NUMA_POLICY, EXIT_STATUS_FULL), "NUMA_POLICY");
33 ASSERT_STREQ(exit_status_to_string(EXIT_NUMA_POLICY, EXIT_STATUS_SYSTEMD), "NUMA_POLICY");
34 assert_se(!exit_status_to_string(EXIT_NUMA_POLICY, EXIT_STATUS_BSD));
35 assert_se(!exit_status_to_string(EXIT_NUMA_POLICY, EXIT_STATUS_LSB));
36 }
37
38 DEFINE_TEST_MAIN(LOG_DEBUG);