pacemaker 2.1.8-2.1.8
Scalable High-Availability cluster resource manager
Loading...
Searching...
No Matches
pcmk__parse_type_test.c
Go to the documentation of this file.
1/*
2 * Copyright 2024 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 General Public License version 2
7 * or later (GPLv2+) WITHOUT ANY WARRANTY.
8 */
9
10#include <crm_internal.h>
11
12#include <stdio.h>
13
16#include "crmcommon_private.h"
17
18static void
19invalid(void **state)
20{
21 assert_int_equal(pcmk__parse_type("nope", pcmk__comparison_unknown,
22 NULL, NULL),
24}
25
26static void
27valid(void **state)
28{
29 assert_int_equal(pcmk__parse_type(PCMK_VALUE_STRING,
30 pcmk__comparison_unknown, NULL, NULL),
32
33 assert_int_equal(pcmk__parse_type(PCMK_VALUE_INTEGER,
34 pcmk__comparison_unknown, NULL, NULL),
36
37 assert_int_equal(pcmk__parse_type(PCMK_VALUE_NUMBER,
38 pcmk__comparison_unknown, NULL, NULL),
40
41 assert_int_equal(pcmk__parse_type(PCMK_VALUE_VERSION,
42 pcmk__comparison_unknown, NULL, NULL),
44}
45
46static void
47case_insensitive(void **state)
48{
49 assert_int_equal(pcmk__parse_type("STRING", pcmk__comparison_unknown,
50 NULL, NULL),
52
53 assert_int_equal(pcmk__parse_type("Integer", pcmk__comparison_unknown,
54 NULL, NULL),
56}
57
58static void
59default_number(void **state)
60{
61 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_lt, "1.0", "2.5"),
63
64 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_lte, "1.", "2"),
66
67 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gt, "1", ".5"),
69
70 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gte, "1.0", "2"),
72}
73
74static void
75default_integer(void **state)
76{
77 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_lt, "1", "2"),
79
80 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_lte, "1", "2"),
82
83 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gt, "1", "2"),
85
86 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gte, "1", "2"),
88
89 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gte, NULL, NULL),
91
92 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gte, "1", NULL),
94
95 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_gte, NULL, "2.5"),
97}
98
99static void
100default_string(void **state)
101{
102 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_unknown,
103 NULL, NULL),
105
106 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_defined,
107 NULL, NULL),
109
110 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_undefined,
111 NULL, NULL),
113
114 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_eq, NULL, NULL),
116
117 assert_int_equal(pcmk__parse_type(NULL, pcmk__comparison_ne, NULL, NULL),
119}
120
121PCMK__UNIT_TEST(NULL, NULL,
122 cmocka_unit_test(invalid),
123 cmocka_unit_test(valid),
124 cmocka_unit_test(case_insensitive),
125 cmocka_unit_test(default_number),
126 cmocka_unit_test(default_integer),
127 cmocka_unit_test(default_string))
@ pcmk__type_integer
@ pcmk__type_unknown
@ pcmk__type_version
@ pcmk__type_number
@ pcmk__type_string
G_GNUC_INTERNAL enum pcmk__type pcmk__parse_type(const char *type, enum pcmk__comparison op, const char *value1, const char *value2)
Definition rules.c:765
@ pcmk__comparison_gt
@ pcmk__comparison_lte
@ pcmk__comparison_unknown
@ pcmk__comparison_ne
@ pcmk__comparison_eq
@ pcmk__comparison_defined
@ pcmk__comparison_gte
@ pcmk__comparison_undefined
@ pcmk__comparison_lt
#define PCMK_VALUE_INTEGER
Definition options.h:164
#define PCMK_VALUE_NUMBER
Definition options.h:182
#define PCMK_VALUE_VERSION
Definition options.h:219
#define PCMK_VALUE_STRING
Definition options.h:208
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)