pacemaker 2.1.5-a3f44794f94
Scalable High-Availability cluster resource manager
pcmk__scan_port_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2022 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
13
14static void
15empty_input_string(void **state)
16{
17 int result;
18
19 assert_int_equal(pcmk__scan_port("", &result), EINVAL);
20 assert_int_equal(result, -1);
21}
22
23static void
24bad_input_string(void **state)
25{
26 int result;
27
28 assert_int_equal(pcmk__scan_port("abc", &result), EINVAL);
29 assert_int_equal(result, -1);
30}
31
32static void
33out_of_range(void **state)
34{
35 int result;
36
37 assert_int_equal(pcmk__scan_port("-1", &result), pcmk_rc_before_range);
38 assert_int_equal(result, -1);
39 assert_int_equal(pcmk__scan_port("65536", &result), pcmk_rc_after_range);
40 assert_int_equal(result, -1);
41}
42
43static void
44typical_case(void **state)
45{
46 int result;
47
48 assert_int_equal(pcmk__scan_port("0", &result), pcmk_rc_ok);
49 assert_int_equal(result, 0);
50
51 assert_int_equal(pcmk__scan_port("80", &result), pcmk_rc_ok);
52 assert_int_equal(result, 80);
53}
54
55PCMK__UNIT_TEST(NULL, NULL,
56 cmocka_unit_test(empty_input_string),
57 cmocka_unit_test(bad_input_string),
58 cmocka_unit_test(out_of_range),
59 cmocka_unit_test(typical_case))
pcmk__action_result_t result
Definition: pcmk_fence.c:35
@ pcmk_rc_before_range
Definition: results.h:121
@ pcmk_rc_ok
Definition: results.h:148
@ pcmk_rc_after_range
Definition: results.h:119
int pcmk__scan_port(const char *text, int *port)
Definition: strings.c:161
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)