18const char *
rngs1[] = {
"pacemaker-3.0.rng",
"status-1.0.rng",
"alerts-2.10.rng",
19 "nvset-2.9.rng",
"score.rng",
"rule-2.9.rng",
20 "tags-1.3.rng",
"acls-2.0.rng",
"fencing-2.4.rng",
21 "constraints-3.0.rng",
"resources-3.0.rng",
"nvset-3.0.rng",
22 "nodes-3.0.rng",
"options-3.0.rng", NULL };
24const char *
rngs2[] = {
"pacemaker-2.0.rng",
"status-1.0.rng",
"tags-1.3.rng",
25 "acls-2.0.rng",
"fencing-1.2.rng",
"constraints-1.2.rng",
26 "rule.rng",
"score.rng",
"resources-1.3.rng",
27 "nvset-1.3.rng",
"nodes-1.3.rng",
"options-1.0.rng",
28 "nvset.rng",
"cib-1.2.rng", NULL };
30const char *
rngs3[] = {
"pacemaker-2.1.rng",
"constraints-2.1.rng", NULL };
35 setenv(
"PCMK_schema_directory", PCMK__TEST_SCHEMA_DIR, 1);
44 unsetenv(
"PCMK_schema_directory");
49invalid_name(
void **state)
51 GList *already_included = NULL;
55 assert_null(
parent->children);
56 assert_null(already_included);
61single_schema(
void **state)
63 GList *already_included = NULL;
65 xmlNode *schema_node = NULL;
66 xmlNode *file_node = NULL;
71 assert_non_null(already_included);
72 assert_non_null(
parent->children);
85 assert_string_equal(
"pacemaker-3.0",
89 while (file_node != NULL &&
rngs1[i] != NULL) {
90 assert_string_equal(
rngs1[i],
92 assert_int_equal(pcmk__xml_first_child(file_node)->
type, XML_CDATA_SECTION_NODE);
98 g_list_free_full(already_included, free);
103multiple_schemas(
void **state)
105 GList *already_included = NULL;
107 xmlNode *schema_node = NULL;
108 xmlNode *file_node = NULL;
114 assert_non_null(already_included);
115 assert_non_null(
parent->children);
121 assert_string_equal(
"pacemaker-2.0",
125 while (file_node != NULL &&
rngs2[i] != NULL) {
126 assert_string_equal(
rngs2[i],
128 assert_int_equal(pcmk__xml_first_child(file_node)->
type, XML_CDATA_SECTION_NODE);
135 assert_string_equal(
"pacemaker-2.1",
141 while (file_node != NULL &&
rngs3[i] != NULL) {
142 assert_string_equal(
rngs3[i],
144 assert_int_equal(pcmk__xml_first_child(file_node)->
type, XML_CDATA_SECTION_NODE);
150 g_list_free_full(already_included, free);
155 cmocka_unit_test(invalid_name),
156 cmocka_unit_test(single_schema),
157 cmocka_unit_test(multiple_schemas))
enum pcmk_ipc_server type
void pcmk__build_schema_xml_node(xmlNode *parent, const char *name, GList **already_included)
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.
const char * crm_element_value(const xmlNode *data, const char *name)
Retrieve the value of an XML attribute.
xmlNode * pcmk__xe_first_child(const xmlNode *parent, const char *node_name, const char *attr_n, const char *attr_v)
xmlNode * pcmk__xe_next(const xmlNode *node, const char *element_name)
xmlNode * pcmk__xe_create(xmlNode *parent, const char *name)
void pcmk__xml_free(xmlNode *xml)