3 #include <libxml/parser.h>
5 static int test_isds_message_free(struct isds_message
**message
) {
6 isds_message_free(message
);
7 if (!message
) PASS_TEST
;
10 FAIL_TEST("isds_message_free() did not null pointer");
18 INIT_TEST("isds_message_free()");
20 ABORT_UNIT("isds_init() failed");
22 struct isds_message
*message
= NULL
;
23 struct isds_document
*document
= NULL
;
24 xmlNode node
= { .type
= XML_TEXT_NODE
, .content
= BAD_CAST
"data" };
25 xmlDocPtr tree
= xmlParseDoc(BAD_CAST
"<root>data</root>");
27 TEST("NULL", test_isds_message_free
, NULL
);
28 TEST("*NULL", test_isds_message_free
, &message
);
31 TEST("Empty structure", test_isds_message_free
, &message
);
34 TEST_FILL_STRING(message
->raw
);
35 message
->xml
= NULL
; /* Parsed XML message */
36 TEST_CALLOC(message
->envelope
); /* Message envelope */
37 TEST_CALLOC(message
->documents
); /* List of isds_document's. */
38 TEST("Message without XML documents", test_isds_message_free
,
42 TEST_FILL_STRING(message
->raw
);
43 message
->xml
= NULL
; /* Parsed XML message */
44 TEST_CALLOC(message
->envelope
); /* Message envelope */
45 TEST_CALLOC(message
->documents
); /* List of isds_document's. */
46 message
->documents
->destructor
= (void (*)(void**))isds_document_free
;
47 TEST_CALLOC(document
);
49 document
->xml_node_list
= &node
;
50 message
->documents
->data
= document
;
51 TEST("Message with XML document without XML tree", test_isds_message_free
,
55 TEST_FILL_STRING(message
->raw
);
56 message
->xml
= tree
; /* Parsed XML message */
57 TEST_CALLOC(message
->envelope
); /* Message envelope */
58 TEST_CALLOC(message
->documents
); /* List of isds_document's. */
59 message
->documents
->destructor
= (void (*)(void**))isds_document_free
;
60 TEST_CALLOC(document
);
62 document
->xml_node_list
= tree
->children
;
63 message
->documents
->data
= document
;
64 TEST("Message with XML document with XML tree", test_isds_message_free
,