27 .rsc_provider =
"heartbeat",
28 .rsc_agent =
"IPaddr2",
39 assert_rsc_expression(
const char *xml_string,
int reference_rc)
53 #define EXPR_ALL_MATCH \ 54 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 55 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 56 PCMK_XA_PROVIDER "='heartbeat' " \ 57 PCMK_XA_TYPE "='IPaddr2' />" 60 null_invalid(
void **state)
70 assert_rsc_expression(NULL, EINVAL);
78 #define EXPR_ID_MISSING \ 79 "<" PCMK_XE_RSC_EXPRESSION " " \ 80 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 81 PCMK_XA_PROVIDER "='heartbeat' " \ 82 PCMK_XA_TYPE "='IPaddr2' />" 84 #define EXPR_ID_EMPTY \ 85 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='' " \ 86 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 87 PCMK_XA_PROVIDER "='heartbeat' " \ 88 PCMK_XA_TYPE "='IPaddr2' />" 91 id_missing(
void **state)
102 #define EXPR_FAIL_STANDARD \ 103 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 104 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_LSB "' />" 106 #define EXPR_EMPTY_STANDARD \ 107 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 108 PCMK_XA_CLASS "='' />" 111 fail_standard(
void **state)
122 #define EXPR_FAIL_PROVIDER \ 123 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 124 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 125 PCMK_XA_PROVIDER "='pacemaker' " \ 126 PCMK_XA_TYPE "='IPaddr2' />" 128 #define EXPR_EMPTY_PROVIDER \ 129 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 130 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 131 PCMK_XA_PROVIDER "='' " PCMK_XA_TYPE "='IPaddr2' />" 134 fail_provider(
void **state)
145 #define EXPR_FAIL_AGENT \ 146 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 147 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 148 PCMK_XA_PROVIDER "='heartbeat' " \ 149 PCMK_XA_TYPE "='IPaddr3' />" 151 #define EXPR_EMPTY_AGENT \ 152 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 153 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 154 PCMK_XA_PROVIDER "='heartbeat' " PCMK_XA_TYPE "='' />" 157 fail_agent(
void **state)
168 #define EXPR_NO_STANDARD_MATCHES \ 169 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 170 PCMK_XA_PROVIDER "='heartbeat' " \ 171 PCMK_XA_TYPE "='IPaddr2' />" 174 no_standard_matches(
void **state)
179 #define EXPR_NO_PROVIDER_MATCHES \ 180 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 181 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 182 PCMK_XA_TYPE "='IPaddr2' />" 185 no_provider_matches(
void **state)
190 #define EXPR_NO_AGENT_MATCHES \ 191 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' " \ 192 PCMK_XA_CLASS "='" PCMK_RESOURCE_CLASS_OCF "' " \ 193 PCMK_XA_PROVIDER "='heartbeat' />" 196 no_agent_matches(
void **state)
201 #define EXPR_NO_CRITERIA_MATCHES \ 202 "<" PCMK_XE_RSC_EXPRESSION " " PCMK_XA_ID "='e' />" 205 no_criteria_matches(
void **state)
211 all_match(
void **state)
217 cmocka_unit_test(null_invalid),
218 cmocka_unit_test(id_missing),
219 cmocka_unit_test(fail_standard),
220 cmocka_unit_test(fail_provider),
221 cmocka_unit_test(fail_agent),
222 cmocka_unit_test(no_standard_matches),
223 cmocka_unit_test(no_provider_matches),
224 cmocka_unit_test(no_agent_matches),
225 cmocka_unit_test(no_criteria_matches),
226 cmocka_unit_test(all_match))
#define EXPR_NO_STANDARD_MATCHES
#define EXPR_FAIL_STANDARD
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
#define PCMK_RESOURCE_CLASS_OCF
#define EXPR_NO_PROVIDER_MATCHES
#define EXPR_NO_AGENT_MATCHES
void pcmk__xml_free(xmlNode *xml)
#define EXPR_EMPTY_STANDARD
int pcmk__xml_test_setup_group(void **state)
Wrappers for and extensions to libxml2.
int pcmk__xml_test_teardown_group(void **state)
xmlNode * pcmk__xml_parse(const char *input)
#define EXPR_EMPTY_PROVIDER
#define EXPR_NO_CRITERIA_MATCHES
#define EXPR_FAIL_PROVIDER
G_GNUC_INTERNAL int pcmk__evaluate_rsc_expression(const xmlNode *expr, const pcmk_rule_input_t *rule_input)