27 .op_interval_ms = 10000,
38assert_op_expression(
const char *xml_string,
int reference_rc)
52#define EXPR_FAIL_BOTH \
53 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
54 PCMK_XA_NAME "='" PCMK_ACTION_START "' " \
55 PCMK_XA_INTERVAL "='0' />"
58null_invalid(
void **state)
68 assert_op_expression(NULL, EINVAL);
76#define EXPR_ID_MISSING \
77 "<" PCMK_XE_OP_EXPRESSION " " \
78 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
79 PCMK_XA_INTERVAL "='10s' />"
81#define EXPR_ID_EMPTY \
82 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='' " \
83 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
84 PCMK_XA_INTERVAL "='10s' />"
87id_missing(
void **state)
98#define EXPR_NAME_MISSING \
99 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
100 PCMK_XA_INTERVAL "='10s' />"
103name_missing(
void **state)
108#define EXPR_MATCH_BOTH \
109 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
110 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
111 PCMK_XA_INTERVAL "='10s' />"
113#define EXPR_EMPTY_NAME \
114 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
115 PCMK_XA_NAME "='' " PCMK_XA_INTERVAL "='10s' />"
118input_name_missing(
void **state)
126#define EXPR_FAIL_NAME \
127 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
128 PCMK_XA_NAME "='" PCMK_ACTION_START "' " \
129 PCMK_XA_INTERVAL "='10s' />"
132fail_name(
void **state)
145#define EXPR_EMPTY_INTERVAL \
146 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
147 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
148 PCMK_XA_INTERVAL "='' />"
150#define EXPR_INVALID_INTERVAL \
151 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
152 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
153 PCMK_XA_INTERVAL "='not-an-interval' />"
156invalid_interval(
void **state)
162#define EXPR_DEFAULT_INTERVAL \
163 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
164 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' />"
167default_interval(
void **state)
172#define EXPR_FAIL_INTERVAL \
173 "<" PCMK_XE_OP_EXPRESSION " " PCMK_XA_ID "='e' " \
174 PCMK_XA_NAME "='" PCMK_ACTION_MONITOR "' " \
175 PCMK_XA_INTERVAL "='9s' />"
178fail_interval(
void **state)
185match_both(
void **state)
191fail_both(
void **state)
197 cmocka_unit_test(null_invalid),
198 cmocka_unit_test(id_missing),
199 cmocka_unit_test(name_missing),
200 cmocka_unit_test(input_name_missing),
201 cmocka_unit_test(fail_name),
202 cmocka_unit_test(invalid_interval),
203 cmocka_unit_test(default_interval),
204 cmocka_unit_test(fail_interval),
205 cmocka_unit_test(match_both),
206 cmocka_unit_test(fail_both))
#define PCMK_ACTION_MONITOR
G_GNUC_INTERNAL int pcmk__evaluate_op_expression(const xmlNode *expr, const pcmk_rule_input_t *rule_input)
#define EXPR_DEFAULT_INTERVAL
#define EXPR_NAME_MISSING
#define EXPR_INVALID_INTERVAL
#define EXPR_EMPTY_INTERVAL
#define EXPR_FAIL_INTERVAL
int pcmk__xml_test_teardown_group(void **state)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
int pcmk__xml_test_setup_group(void **state)
Wrappers for and extensions to libxml2.
void pcmk__xml_free(xmlNode *xml)
xmlNode * pcmk__xml_parse(const char *input)