This source file includes following definitions.
- assert_comment
- null_doc
- with_doc
1
2
3
4
5
6
7
8
9
10 #include <crm_internal.h>
11
12 #include <crm/common/unittest_internal.h>
13
14 #include "crmcommon_private.h"
15
16
17
18
19
20
21 static void
22 assert_comment(const char *content)
23 {
24 xmlDoc *doc = pcmk__xml_new_doc();
25 xml_doc_private_t *docpriv = doc->_private;
26 xmlNode *node = NULL;
27 xml_node_private_t *nodepriv = NULL;
28
29 pcmk__xml_doc_set_flags(doc, pcmk__xf_tracking);
30
31 node = pcmk__xc_create(doc, content);
32 assert_non_null(node);
33 assert_int_equal(node->type, XML_COMMENT_NODE);
34 assert_ptr_equal(node->doc, doc);
35
36 if (content == NULL) {
37 assert_null(node->content);
38 } else {
39 assert_non_null(node->content);
40 assert_string_equal((const char *) node->content, content);
41 }
42
43 nodepriv = node->_private;
44 assert_non_null(nodepriv);
45 assert_int_equal(nodepriv->check, PCMK__XML_NODE_PRIVATE_MAGIC);
46 assert_true(pcmk_all_flags_set(nodepriv->flags,
47 pcmk__xf_dirty|pcmk__xf_created));
48
49 assert_true(pcmk_is_set(docpriv->flags, pcmk__xf_dirty));
50
51 pcmk__xml_free(node);
52 pcmk__xml_free_doc(doc);
53 }
54
55 static void
56 null_doc(void **state)
57 {
58 pcmk__assert_asserts(pcmk__xc_create(NULL, NULL));
59 pcmk__assert_asserts(pcmk__xc_create(NULL, "some content"));
60 }
61
62 static void
63 with_doc(void **state)
64 {
65 assert_comment(NULL);
66 assert_comment("some content");
67 }
68
69 PCMK__UNIT_TEST(pcmk__xml_test_setup_group, pcmk__xml_test_teardown_group,
70 cmocka_unit_test(null_doc),
71 cmocka_unit_test(with_doc));