Fix building with libxml2-2.12.0
[libisds.git] / test / offline / isds_message_free.c
blobf819d196b2e8a20921a016c2dd57bf80c2440a20
1 #include "../test.h"
2 #include "isds.h"
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;
9 if (*message)
10 FAIL_TEST("isds_message_free() did not null pointer");
12 PASS_TEST;
16 int main(void) {
18 INIT_TEST("isds_message_free()");
19 if (isds_init())
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);
30 TEST_CALLOC(message);
31 TEST("Empty structure", test_isds_message_free, &message);
33 TEST_CALLOC(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,
39 &message);
41 TEST_CALLOC(message);
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);
48 document->is_xml = 1;
49 document->xml_node_list = &node;
50 message->documents->data = document;
51 TEST("Message with XML document without XML tree", test_isds_message_free,
52 &message);
54 TEST_CALLOC(message);
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);
61 document->is_xml = 1;
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,
65 &message);
67 isds_cleanup();
68 SUM_TEST();