Skip to content

Commit 0b16ede

Browse files
Added test for list search.
Fixed error of list search. Did not always return correct results with small lists.
1 parent 2976322 commit 0b16ede

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

lib_ll.c

+1-3
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ int list_search(List_Head *pHead, List_Node *pNode)
4545
assert(pHead != NULL);
4646
if(pHead->count == 0) return 0;
4747
pTemp = pHead->pNext;
48-
while(pTemp->pNext != NULL) {
48+
while(pTemp != NULL) {
4949
if(pTemp == pNode) return 1;
5050
pTemp = pTemp->pNext;
5151
}
@@ -329,8 +329,6 @@ int list_node_array(List_Head *pHead, void *pArr[], int len)
329329
return 0;
330330
}
331331

332-
/* void* tempArray = malloc(width*elementsNeeded); */
333-
334332
void list_clear(List_Head *pHead)
335333
{
336334
List_Node *pTemp = pHead->pNext;

lib_test.c

+23
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,29 @@ int test_linked_list()
430430
if(pArr[5] != NULL) result++;
431431
test_msg_end(result);
432432

433+
test_msg_start("Test Linked List - Search List");
434+
list_clear(test_list1);
435+
if(list_search(test_list1, test_node1) != 0) result++;
436+
test_node1 = list_ins_head(test_list1);
437+
if(list_search(test_list1, test_node1) != 1) result++;
438+
if(list_search(test_list1, test_node2) != 0) result++;
439+
if(list_search(test_list1, test_node3) != 0) result++;
440+
if(list_search(test_list1, NULL) != 0) result++;
441+
if(list_search(test_list1, (List_Node *)test_list1) != 0) result++;
442+
test_node2 = list_ins_head(test_list1);
443+
if(list_search(test_list1, test_node1) != 1) result++;
444+
if(list_search(test_list1, test_node2) != 1) result++;
445+
if(list_search(test_list1, test_node3) != 0) result++;
446+
if(list_search(test_list1, NULL) != 0) result++;
447+
if(list_search(test_list1, (List_Node *)test_list1) != 0) result++;
448+
list_clear(test_list1);
449+
if(list_search(test_list1, test_node1) != 0) result++;
450+
if(list_search(test_list1, test_node2) != 0) result++;
451+
if(list_search(test_list1, test_node3) != 0) result++;
452+
if(list_search(test_list1, NULL) != 0) result++;
453+
if(list_search(test_list1, (List_Node *)test_list1) != 0) result++;
454+
test_msg_end(result);
455+
433456
return result;
434457
}
435458

0 commit comments

Comments
 (0)