15#define XML_PASSING_RULE \
16 "<" PCMK_XE_RULE " " PCMK_XA_ID "='rp' >\n" \
17 "<" PCMK_XE_DATE_EXPRESSION " " PCMK_XA_ID "='ep' " \
18 PCMK_XA_OPERATION "='" PCMK_VALUE_GT "' " \
19 PCMK_XA_START "='1950-01-01 00:00:00' />\n" \
20 "</" PCMK_XE_RULE ">\n"
22#define XML_FAILING_RULE \
23 "<" PCMK_XE_RULE " " PCMK_XA_ID "='rf' >\n" \
24 "<" PCMK_XE_DATE_EXPRESSION " " PCMK_XA_ID "='ef' " \
25 PCMK_XA_OPERATION "='" PCMK_VALUE_LT "' " \
26 PCMK_XA_END "='1950-01-01 00:00:00' />\n" \
27 "</" PCMK_XE_RULE ">\n"
29#define XML_NVPAIRS_1 \
30 "<" PCMK_XE_NVPAIR " " PCMK_XA_ID "='nvp1-1' " \
31 PCMK_XA_NAME "='name1' " PCMK_XA_VALUE "='1' />\n" \
32 "<" PCMK_XE_NVPAIR " " PCMK_XA_ID "='nvp1-2' " \
33 PCMK_XA_NAME "='name2' " PCMK_XA_VALUE "='1' />\n"
35#define XML_NVPAIRS_2 \
36 "<" PCMK_XE_NVPAIR " " PCMK_XA_ID "='nvp2-1' " \
37 PCMK_XA_NAME "='name1' " PCMK_XA_VALUE "='2' />\n" \
38 "<" PCMK_XE_NVPAIR " " PCMK_XA_ID "='nvp2-2' " \
39 PCMK_XA_NAME "='name2' " PCMK_XA_VALUE "='2' />\n" \
40 "<" PCMK_XE_NVPAIR " " PCMK_XA_ID "='nvp2-3' " \
41 PCMK_XA_NAME "='name3' " PCMK_XA_VALUE "='2' />\n"
44invalid_args(
void **state)
62 unpack_data.
values = g_hash_table_new(NULL, NULL);
64 g_hash_table_destroy(unpack_data.
values);
70with_rules(
void **state) {
84 assert_int_equal(g_hash_table_size(unpack_data.
values), 2);
85 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
86 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
92 assert_int_equal(g_hash_table_size(unpack_data.
values), 2);
93 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
94 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
95 assert_null(g_hash_table_lookup(unpack_data.
values,
"name3"));
99 g_hash_table_destroy(unpack_data.
values);
103without_overwrite(
void **state)
113 assert_non_null(xml);
115 assert_int_equal(g_hash_table_size(unpack_data.
values), 2);
116 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
117 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
121 assert_non_null(xml);
123 assert_int_equal(g_hash_table_size(unpack_data.
values), 3);
124 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
125 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
126 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name3"),
"2");
129 g_hash_table_destroy(unpack_data.
values);
133with_overwrite(
void **state)
143 assert_non_null(xml);
145 assert_int_equal(g_hash_table_size(unpack_data.
values), 2);
146 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
147 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
151 assert_non_null(xml);
153 assert_int_equal(g_hash_table_size(unpack_data.
values), 3);
154 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"2");
155 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"2");
156 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name3"),
"2");
159 g_hash_table_destroy(unpack_data.
values);
163attributes_child(
void **state)
172 assert_non_null(xml);
174 assert_int_equal(g_hash_table_size(unpack_data.
values), 2);
175 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name1"),
"1");
176 assert_string_equal(g_hash_table_lookup(unpack_data.
values,
"name2"),
"1");
179 g_hash_table_destroy(unpack_data.
values);
183 cmocka_unit_test(invalid_args),
184 cmocka_unit_test(with_rules),
185 cmocka_unit_test(without_overwrite),
186 cmocka_unit_test(with_overwrite),
187 cmocka_unit_test(attributes_child))
void crm_time_free(crm_time_t *dt)
crm_time_t * crm_time_new(const char *string)
struct crm_time_s crm_time_t
void pcmk__unpack_nvpair_block(gpointer data, gpointer user_data)
GHashTable * pcmk__strkey_table(GDestroyNotify key_destroy_func, GDestroyNotify value_destroy_func)
#define pcmk__assert_asserts(stmt)
int pcmk__xml_test_teardown_group(void **state)
#define PCMK__UNIT_TEST(group_setup, group_teardown,...)
int pcmk__xml_test_setup_group(void **state)
void pcmk__xml_free(xmlNode *xml)
xmlNode * pcmk__xml_parse(const char *input)
#define PCMK__XE_ATTRIBUTES