summaryrefslogtreecommitdiff
path: root/tests/unit/unit1300.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/unit1300.c')
-rw-r--r--tests/unit/unit1300.c214
1 files changed, 96 insertions, 118 deletions
diff --git a/tests/unit/unit1300.c b/tests/unit/unit1300.c
index c4d9dd90..8ec32a8c 100644
--- a/tests/unit/unit1300.c
+++ b/tests/unit/unit1300.c
@@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -23,9 +23,9 @@
#include "llist.h"
-static struct curl_llist *llist;
+static struct curl_llist llist;
-static struct curl_llist *llist_destination;
+static struct curl_llist llist_destination;
static void test_curl_llist_dtor(void *key, void *value)
{
@@ -36,34 +36,32 @@ static void test_curl_llist_dtor(void *key, void *value)
static CURLcode unit_setup(void)
{
- llist = Curl_llist_alloc(test_curl_llist_dtor);
- if(!llist)
- return CURLE_OUT_OF_MEMORY;
- llist_destination = Curl_llist_alloc(test_curl_llist_dtor);
- if(!llist_destination) {
- Curl_llist_destroy(llist, NULL);
- return CURLE_OUT_OF_MEMORY;
- }
-
+ Curl_llist_init(&llist, test_curl_llist_dtor);
+ Curl_llist_init(&llist_destination, test_curl_llist_dtor);
return CURLE_OK;
}
static void unit_stop(void)
{
- Curl_llist_destroy(llist, NULL);
- Curl_llist_destroy(llist_destination, NULL);
+ Curl_llist_destroy(&llist, NULL);
+ Curl_llist_destroy(&llist_destination, NULL);
}
UNITTEST_START
+{
int unusedData_case1 = 1;
int unusedData_case2 = 2;
int unusedData_case3 = 3;
+ struct curl_llist_element case1_list;
+ struct curl_llist_element case2_list;
+ struct curl_llist_element case3_list;
+ struct curl_llist_element case4_list;
+ struct curl_llist_element case5_list;
struct curl_llist_element *head;
struct curl_llist_element *element_next;
struct curl_llist_element *element_prev;
struct curl_llist_element *to_remove;
- size_t llist_size = Curl_llist_count(llist);
- int curlErrCode = 0;
+ size_t llist_size = Curl_llist_count(&llist);
/**
* testing llist_init
@@ -76,10 +74,10 @@ UNITTEST_START
* 4: list dtor will be NULL
*/
- fail_unless(llist->size == 0, "list initial size should be zero");
- fail_unless(llist->head == NULL, "list head should initiate to NULL");
- fail_unless(llist->tail == NULL, "list tail should intiate to NULL");
- fail_unless(llist->dtor == test_curl_llist_dtor,
+ fail_unless(llist.size == 0, "list initial size should be zero");
+ fail_unless(llist.head == NULL, "list head should initiate to NULL");
+ fail_unless(llist.tail == NULL, "list tail should intiate to NULL");
+ fail_unless(llist.dtor == test_curl_llist_dtor,
"list dtor shold initiate to test_curl_llist_dtor");
/**
@@ -92,67 +90,49 @@ UNITTEST_START
* 3: list tail will be the same as list head
*/
- curlErrCode = Curl_llist_insert_next(llist, llist->head, &unusedData_case1);
- if(curlErrCode == 1) {
- fail_unless(Curl_llist_count(llist) == 1,
- "List size should be 1 after adding a new element");
- /*test that the list head data holds my unusedData */
- fail_unless(llist->head->ptr == &unusedData_case1,
- "List size should be 1 after adding a new element");
- /*same goes for the list tail */
- fail_unless(llist->tail == llist->head,
- "List size should be 1 after adding a new element");
-
- /**
- * testing Curl_llist_insert_next
- * case 2:
- * list has 1 element, adding one element after the head
- * @assumptions:
- * 1: the element next to head should be our newly created element
- * 2: the list tail should be our newly created element
- */
-
- curlErrCode = Curl_llist_insert_next(llist, llist->head,
- &unusedData_case3);
- if(curlErrCode == 1) {
- fail_unless(llist->head->next->ptr == &unusedData_case3,
- "the node next to head is not getting set correctly");
- fail_unless(llist->tail->ptr == &unusedData_case3,
- "the list tail is not getting set correctly");
- }
- else {
- printf("skipping Curl_llist_insert_next as a non "
- "success error code was returned\n");
- }
-
- /**
- * testing Curl_llist_insert_next
- * case 3:
- * list has >1 element, adding one element after "NULL"
- * @assumptions:
- * 1: the element next to head should be our newly created element
- * 2: the list tail should different from newly created element
- */
-
- curlErrCode = Curl_llist_insert_next(llist, llist->head,
- &unusedData_case2);
- if(curlErrCode == 1) {
- fail_unless(llist->head->next->ptr == &unusedData_case2,
- "the node next to head is not getting set correctly");
- /* better safe than sorry, check that the tail isn't corrupted */
- fail_unless(llist->tail->ptr != &unusedData_case2,
- "the list tail is not getting set correctly");
- }
- else {
- printf("skipping Curl_llist_insert_next as a non "
- "success error code was returned\n");
- }
-
- }
- else {
- printf("skipping Curl_llist_insert_next as a non "
- "success error code was returned\n");
- }
+ Curl_llist_insert_next(&llist, llist.head, &unusedData_case1, &case1_list);
+
+ fail_unless(Curl_llist_count(&llist) == 1,
+ "List size should be 1 after adding a new element");
+ /*test that the list head data holds my unusedData */
+ fail_unless(llist.head->ptr == &unusedData_case1,
+ "head ptr should be first entry");
+ /*same goes for the list tail */
+ fail_unless(llist.tail == llist.head,
+ "tail and head should be the same");
+
+ /**
+ * testing Curl_llist_insert_next
+ * case 2:
+ * list has 1 element, adding one element after the head
+ * @assumptions:
+ * 1: the element next to head should be our newly created element
+ * 2: the list tail should be our newly created element
+ */
+
+ Curl_llist_insert_next(&llist, llist.head,
+ &unusedData_case3, &case3_list);
+ fail_unless(llist.head->next->ptr == &unusedData_case3,
+ "the node next to head is not getting set correctly");
+ fail_unless(llist.tail->ptr == &unusedData_case3,
+ "the list tail is not getting set correctly");
+
+ /**
+ * testing Curl_llist_insert_next
+ * case 3:
+ * list has >1 element, adding one element after "NULL"
+ * @assumptions:
+ * 1: the element next to head should be our newly created element
+ * 2: the list tail should different from newly created element
+ */
+
+ Curl_llist_insert_next(&llist, llist.head,
+ &unusedData_case2, &case2_list);
+ fail_unless(llist.head->next->ptr == &unusedData_case2,
+ "the node next to head is not getting set correctly");
+ /* better safe than sorry, check that the tail isn't corrupted */
+ fail_unless(llist.tail->ptr != &unusedData_case2,
+ "the list tail is not getting set correctly");
/* unit tests for Curl_llist_remove */
@@ -165,19 +145,19 @@ UNITTEST_START
* 3: "new" head's previous will be NULL
*/
- head=llist->head;
- abort_unless(head, "llist->head is NULL");
+ head=llist.head;
+ abort_unless(head, "llist.head is NULL");
element_next = head->next;
- llist_size = Curl_llist_count(llist);
+ llist_size = Curl_llist_count(&llist);
- Curl_llist_remove(llist, llist->head, NULL);
+ Curl_llist_remove(&llist, llist.head, NULL);
- fail_unless(Curl_llist_count(llist) == (llist_size-1),
+ fail_unless(Curl_llist_count(&llist) == (llist_size-1),
"llist size not decremented as expected");
- fail_unless(llist->head == element_next,
+ fail_unless(llist.head == element_next,
"llist new head not modified properly");
- abort_unless(llist->head, "llist->head is NULL");
- fail_unless(llist->head->prev == NULL,
+ abort_unless(llist.head, "llist.head is NULL");
+ fail_unless(llist.head->prev == NULL,
"new head previous not set to null");
/**
@@ -190,13 +170,16 @@ UNITTEST_START
* 2: element->previous->next will be element->next
* 3: element->next->previous will be element->previous
*/
- Curl_llist_insert_next(llist, llist->head, &unusedData_case3);
- llist_size = Curl_llist_count(llist);
- to_remove = llist->head->next;
+ Curl_llist_insert_next(&llist, llist.head, &unusedData_case3,
+ &case4_list);
+ llist_size = Curl_llist_count(&llist);
+ fail_unless(llist_size == 3, "should be 3 list members");
+
+ to_remove = llist.head->next;
abort_unless(to_remove, "to_remove is NULL");
element_next = to_remove->next;
element_prev = to_remove->prev;
- Curl_llist_remove(llist, to_remove, NULL);
+ Curl_llist_remove(&llist, to_remove, NULL);
fail_unless(element_prev->next == element_next,
"element previous->next is not being adjusted");
abort_unless(element_next, "element_next is NULL");
@@ -213,10 +196,10 @@ UNITTEST_START
* 4: list->tail will be tail->previous
*/
- to_remove = llist->tail;
+ to_remove = llist.tail;
element_prev = to_remove->prev;
- Curl_llist_remove(llist, to_remove, NULL);
- fail_unless(llist->tail == element_prev,
+ Curl_llist_remove(&llist, to_remove, NULL);
+ fail_unless(llist.tail == element_prev,
"llist tail is not being adjusted when removing tail");
/**
@@ -228,11 +211,11 @@ UNITTEST_START
* 3: list tail will be null
*/
- to_remove = llist->head;
- Curl_llist_remove(llist, to_remove, NULL);
- fail_unless(llist->head == NULL,
+ to_remove = llist.head;
+ Curl_llist_remove(&llist, to_remove, NULL);
+ fail_unless(llist.head == NULL,
"llist head is not NULL while the llist is empty");
- fail_unless(llist->tail == NULL,
+ fail_unless(llist.tail == NULL,
"llist tail is not NULL while the llist is empty");
/* @testing Curl_llist_move(struct curl_llist *,
@@ -242,7 +225,7 @@ UNITTEST_START
/**
* @case 1:
- * moving head from an llist containg one element to an empty llist
+ * moving head from an llist containing one element to an empty llist
* @assumptions:
* 1: llist size will be 0
* 2: llist_destination size will be 1
@@ -255,38 +238,33 @@ UNITTEST_START
* add one element to the list
*/
- curlErrCode = Curl_llist_insert_next(llist, llist->head, &unusedData_case1);
+ Curl_llist_insert_next(&llist, llist.head, &unusedData_case1,
+ &case5_list);
/* necessary assertions */
- abort_unless(curlErrCode == 1,
- "Curl_llist_insert_next returned an error, Can't move on with test");
- abort_unless(Curl_llist_count(llist) == 1,
+ abort_unless(Curl_llist_count(&llist) == 1,
"Number of list elements is not as expected, Aborting");
- abort_unless(Curl_llist_count(llist_destination) == 0,
+ abort_unless(Curl_llist_count(&llist_destination) == 0,
"Number of list elements is not as expected, Aborting");
/*actual testing code*/
- curlErrCode = Curl_llist_move(llist, llist->head, llist_destination, NULL);
- abort_unless(curlErrCode == 1,
- "Curl_llist_move returned an error, Can't move on with test");
- fail_unless(Curl_llist_count(llist) == 0,
+ Curl_llist_move(&llist, llist.head, &llist_destination, NULL);
+ fail_unless(Curl_llist_count(&llist) == 0,
"moving element from llist didn't decrement the size");
- fail_unless(Curl_llist_count(llist_destination) == 1,
+ fail_unless(Curl_llist_count(&llist_destination) == 1,
"moving element to llist_destination didn't increment the size");
- fail_unless(llist->head == NULL,
+ fail_unless(llist.head == NULL,
"llist head not set to null after moving the head");
- fail_unless(llist_destination->head != NULL,
+ fail_unless(llist_destination.head != NULL,
"llist_destination head set to null after moving an element");
- fail_unless(llist_destination->tail != NULL,
+ fail_unless(llist_destination.tail != NULL,
"llist_destination tail set to null after moving an element");
- fail_unless(llist_destination->tail == llist_destination->tail,
+ fail_unless(llist_destination.tail == llist_destination.tail,
"llist_destination tail doesn't equal llist_destination head");
-
-
-
+}
UNITTEST_STOP