pacemaker 2.1.1-77db578727
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pcmk__results_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2020-2021 the Pacemaker project contributors
3 *
4 * The version control history for this file may have further details.
5 *
6 * This source code is licensed under the GNU Lesser General Public License
7 * version 2.1 or later (LGPLv2.1+) WITHOUT ANY WARRANTY.
8 */
9
10#include <crm_internal.h>
11
12#include <stdio.h>
13#include <stdbool.h>
14#include <glib.h>
15#include <bzlib.h>
16
17static void
18test_for_pcmk_rc_name(void) {
19 g_assert_cmpint(pcmk__strcmp(pcmk_rc_name(pcmk_rc_error-1), "pcmk_rc_unknown_format", pcmk__str_none), ==, 0);
20 g_assert_cmpint(pcmk__strcmp(pcmk_rc_name(pcmk_rc_ok), "pcmk_rc_ok", pcmk__str_none), ==, 0);
21 g_assert_cmpint(pcmk__strcmp(pcmk_rc_name(pcmk_rc_ok), "pcmk_rc_ok", pcmk__str_none), ==, 0);
22 g_assert_cmpint(pcmk__strcmp(pcmk_rc_name(-7777777), "Unknown", pcmk__str_none), ==, 0);
23}
24
25static void
26test_for_pcmk_rc_str(void) {
27 g_assert_cmpint(pcmk__strcmp(pcmk_rc_str(pcmk_rc_error-1), "Unknown output format", pcmk__str_none), ==, 0);
28 g_assert_cmpint(pcmk__strcmp(pcmk_rc_str(pcmk_rc_ok), "OK", pcmk__str_none), ==, 0);
29 g_assert_cmpint(pcmk__strcmp(pcmk_rc_str(-1), "Unknown error", pcmk__str_none), ==, 0);
30}
31
32static void
33test_for_crm_exit_name(void) {
34 g_assert_cmpint(pcmk__strcmp(crm_exit_name(CRM_EX_OK), "CRM_EX_OK", pcmk__str_none), ==, 0);
35}
36
37static void
38test_for_crm_exit_str(void) {
39 g_assert_cmpint(pcmk__strcmp(crm_exit_str(CRM_EX_OK), "OK", pcmk__str_none), ==, 0);
40 g_assert_cmpint(pcmk__strcmp(crm_exit_str(129), "Interrupted by signal", pcmk__str_none), ==, 0);
41 g_assert_cmpint(pcmk__strcmp(crm_exit_str(-7777777), "Unknown exit status", pcmk__str_none), ==, 0);
42}
43
44static void
45test_for_pcmk_rc2exitc(void) {
46 g_assert_cmpint(pcmk_rc2exitc(pcmk_rc_ok), ==, CRM_EX_OK);
47 g_assert_cmpint(pcmk_rc2exitc(-7777777), ==, CRM_EX_ERROR);
48}
49
50static void
51test_for_bz2_strerror(void) {
52 g_assert_cmpint(pcmk__strcmp(bz2_strerror(BZ_STREAM_END), "Ok", pcmk__str_none), ==, 0);
53}
54
55int main(int argc, char **argv) {
56 g_test_init(&argc, &argv, NULL);
57 g_test_add_func("/common/results/test_for_pcmk_rc_name", test_for_pcmk_rc_name);
58 g_test_add_func("/common/results/test_for_pcmk_rc_str", test_for_pcmk_rc_str);
59 g_test_add_func("/common/results/test_for_crm_exit_name", test_for_crm_exit_name);
60 g_test_add_func("/common/results/test_for_crm_exit_str", test_for_crm_exit_str);
61 g_test_add_func("/common/results/test_for_pcmk_rc2exitc", test_for_pcmk_rc2exitc);
62 g_test_add_func("/common/results/test_for_bz2_strerror", test_for_bz2_strerror);
63
64 return g_test_run();
65}
int main(int argc, char **argv)
const char * pcmk_rc_name(int rc)
Get a return code constant name as a string.
Definition results.c:266
const char * bz2_strerror(int rc)
Definition results.c:726
const char * pcmk_rc_str(int rc)
Get a user-friendly description of a return code.
Definition results.c:420
@ CRM_EX_ERROR
Definition results.h:218
@ CRM_EX_OK
Definition results.h:217
@ pcmk_rc_ok
Definition results.h:142
@ pcmk_rc_error
Definition results.h:138
const char * crm_exit_name(crm_exit_t exit_code)
Definition results.c:479
const char * crm_exit_str(crm_exit_t exit_code)
Definition results.c:526
crm_exit_t pcmk_rc2exitc(int rc)
Map a function return code to the most similar exit code.
Definition results.c:620
@ pcmk__str_none
int pcmk__strcmp(const char *s1, const char *s2, uint32_t flags)
Definition strings.c:1123