Loading tests/unit/unit1300.c +83 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,11 @@ UNITTEST_START int unusedData_case1 = 1; int unusedData_case2 = 2; int unusedData_case3 = 3; 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; fail_unless( llist->size == 0 , "list initial size should be zero" ); Loading Loading @@ -112,4 +116,82 @@ UNITTEST_START "success error code was returned\n" ); } /* unit tests for Curl_llist_remove */ /** * case 1: * list has >1 element, removing head * @assumptions: * 1: list size will be decremented by one * 2: head will be the head->next * 3: "new" head's previous will be NULL */ head=llist->head; element_next = head->next; llist_size = Curl_llist_count( llist ); Curl_llist_remove( llist , llist->head , NULL ); fail_unless( Curl_llist_count(llist) == (llist_size-1) , "llist size not decremented as expected" ); fail_unless( llist->head == element_next , "llist new head not modified properly" ); fail_unless( llist->head->prev == NULL , "new head previous not set to null" ); /** * case 2: * removing non head element, with list having >=2 elements * @setup: * 1: insert another element to the list to make element >=2 * @assumptions: * 1: list size will be decremented by one ; tested * 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; element_next = to_remove->next; element_prev = to_remove->prev; Curl_llist_remove( llist , to_remove , NULL ); fail_unless( element_prev->next == element_next , "element previous->next is not being adjusted" ); fail_unless( element_next->prev == element_prev , "element next->previous is not being adjusted" ); /** * case 3: * removing the tail with list having >=1 element * @assumptions * 1: list size will be decremented by one ;tested * 2: element->previous->next will be element->next ;tested * 3: element->next->previous will be element->previous ;tested * 4: list->tail will be tail->previous */ to_remove = llist->tail; element_prev = to_remove->prev; Curl_llist_remove( llist , to_remove , NULL ); fail_unless( llist->tail == element_prev , "llist tail is not being adjusted when removing tail" ); fail_unless( 1==0 , "making sure i'm compiling" ); /** * case 4: * removing head with list having 1 element * @assumptions: * 1: list size will be decremented by one ;tested * 2: list head will be null * 3: list tail will be 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 , "llist tail is not NULL while the llist is empty" ); UNITTEST_STOP Loading
tests/unit/unit1300.c +83 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,11 @@ UNITTEST_START int unusedData_case1 = 1; int unusedData_case2 = 2; int unusedData_case3 = 3; 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; fail_unless( llist->size == 0 , "list initial size should be zero" ); Loading Loading @@ -112,4 +116,82 @@ UNITTEST_START "success error code was returned\n" ); } /* unit tests for Curl_llist_remove */ /** * case 1: * list has >1 element, removing head * @assumptions: * 1: list size will be decremented by one * 2: head will be the head->next * 3: "new" head's previous will be NULL */ head=llist->head; element_next = head->next; llist_size = Curl_llist_count( llist ); Curl_llist_remove( llist , llist->head , NULL ); fail_unless( Curl_llist_count(llist) == (llist_size-1) , "llist size not decremented as expected" ); fail_unless( llist->head == element_next , "llist new head not modified properly" ); fail_unless( llist->head->prev == NULL , "new head previous not set to null" ); /** * case 2: * removing non head element, with list having >=2 elements * @setup: * 1: insert another element to the list to make element >=2 * @assumptions: * 1: list size will be decremented by one ; tested * 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; element_next = to_remove->next; element_prev = to_remove->prev; Curl_llist_remove( llist , to_remove , NULL ); fail_unless( element_prev->next == element_next , "element previous->next is not being adjusted" ); fail_unless( element_next->prev == element_prev , "element next->previous is not being adjusted" ); /** * case 3: * removing the tail with list having >=1 element * @assumptions * 1: list size will be decremented by one ;tested * 2: element->previous->next will be element->next ;tested * 3: element->next->previous will be element->previous ;tested * 4: list->tail will be tail->previous */ to_remove = llist->tail; element_prev = to_remove->prev; Curl_llist_remove( llist , to_remove , NULL ); fail_unless( llist->tail == element_prev , "llist tail is not being adjusted when removing tail" ); fail_unless( 1==0 , "making sure i'm compiling" ); /** * case 4: * removing head with list having 1 element * @assumptions: * 1: list size will be decremented by one ;tested * 2: list head will be null * 3: list tail will be 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 , "llist tail is not NULL while the llist is empty" ); UNITTEST_STOP