From 5c30ace8db1b35350e80403a7af3badbe44136cf Mon Sep 17 00:00:00 2001 From: secXsQuared Date: Thu, 29 Mar 2018 06:50:02 -0400 Subject: [PATCH] Added test case for pop back and pop front value check. --- lib/linked_list.c | 15 +++++++++++++-- test/linked_list_test.c | 18 ++++++++++-------- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/lib/linked_list.c b/lib/linked_list.c index 25bfef4..02b799d 100644 --- a/lib/linked_list.c +++ b/lib/linked_list.c @@ -55,21 +55,32 @@ void SXAPI lb_linked_list_push_back(struct linked_list *list, struct linked_list struct linked_list_node *SXAPI lb_linked_list_pop_front(struct linked_list *list) { + struct linked_list_node *ret = NULL; if (list == NULL) { return NULL; } - return lb_linked_list_remove_by_ref(list, list->head); + + ret = list->head; + + lb_linked_list_remove_by_ref(list, list->head); + + return ret; } struct linked_list_node *SXAPI lb_linked_list_pop_back(struct linked_list *list) { + struct linked_list_node *ret = NULL; if (list == NULL) { return NULL; } - return lb_linked_list_remove_by_ref(list, list->tail); + ret = list->tail; + + lb_linked_list_remove_by_ref(list, list->tail); + + return ret; } diff --git a/test/linked_list_test.c b/test/linked_list_test.c index a53a035..335382a 100644 --- a/test/linked_list_test.c +++ b/test/linked_list_test.c @@ -364,6 +364,7 @@ static bool size_test(void) static bool push_pop_front_test(void) { + struct linked_list_node *node; bool result = TRUE; struct linked_list list; lb_linked_list_init(&list); @@ -377,16 +378,16 @@ static bool push_pop_front_test(void) int val1[] = {4, 3, 2, 1}; result = result && assert_list(&list, val1, 4); - lb_linked_list_pop_front(&list); + node = lb_linked_list_pop_front(&list); //321==123 int val2[] = {3, 2, 1}; - result = result && assert_list(&list, val2, 3); + result = result && assert_list(&list, val2, 3) && OBTAIN_STRUCT_ADDR(node, my_list_node, lnode)->val == 4; lb_linked_list_pop_front(&list); lb_linked_list_pop_front(&list); - lb_linked_list_pop_front(&list); + node = lb_linked_list_pop_front(&list); - result = result && assert_list(&list, NULL, 0); + result = result && assert_list(&list, NULL, 0) && OBTAIN_STRUCT_ADDR(node, my_list_node, lnode)->val == 1; return result; } @@ -395,6 +396,7 @@ static bool push_pop_back_test(void) bool result = TRUE; struct linked_list list; lb_linked_list_init(&list); + struct linked_list_node *node; push_back_val(&list, 1); push_back_val(&list, 2); @@ -405,16 +407,16 @@ static bool push_pop_back_test(void) int val1[] = {1, 2, 3, 4}; result = result && assert_list(&list, val1, 4); - lb_linked_list_pop_back(&list); + node = lb_linked_list_pop_back(&list); //123==321 int val2[] = {1, 2, 3}; - result = result && assert_list(&list, val2, 3); + result = result && assert_list(&list, val2, 3) && OBTAIN_STRUCT_ADDR(node, my_list_node, lnode)->val == 4; lb_linked_list_pop_back(&list); - lb_linked_list_pop_back(&list); + node = lb_linked_list_pop_back(&list); lb_linked_list_pop_back(&list); - result = result && assert_list(&list, NULL, 0); + result = result && assert_list(&list, NULL, 0) && OBTAIN_STRUCT_ADDR(node, my_list_node, lnode)->val == 2; return result; }