void test_listAddTail_0x500_given_list_contains_0x100_0x200_0x300()
{
  LinkedList list ;
  ListElement listElement1 ;
  ListElement listElement2;
  ListElement listElement3;
  ListElement listElement4;
  
  initLinkedList(&list);
  
  listElementCreate(&listElement1,0x100);
  listElementCreate(&listElement2,0x200);
  listElementCreate(&listElement3,0x300);
  listElementCreate(&listElement4,0x500);
  
  listAddHead(&list,&listElement3);
  listAddHead(&list,&listElement2);
  listAddHead(&list,&listElement1);
  
  TEST_ASSERT_EQUAL(&listElement1,list.head);
  TEST_ASSERT_EQUAL(&listElement3,list.tail);
  TEST_ASSERT_EQUAL(0x100,list.head->data);
  TEST_ASSERT_EQUAL(0x200,(list.head)->next->data);
  TEST_ASSERT_EQUAL(0x300,(list.head)->next->next->data);
  
  listAddTail(&list,&listElement4);
  
  TEST_ASSERT_EQUAL(&listElement4,list.tail);
  TEST_ASSERT_EQUAL(0x500,list.tail->data);
  TEST_ASSERT_EQUAL(NULL,list.tail->next);
}
示例#2
0
HETIMERELEM
etimerAdd(HETIMER timer, ETimerHandler callback, void *param, UINT32 timeOut)
{
  etimerStruct *tm = (etimerStruct *)timer;
  etimerNode node;
  int loc;

  if (!timer) return (HETIMERELEM)RVERROR; /* NULL function */

  memset(&node, 0, sizeof(node));
  node.callback = callback;
  node.param = param;
  node.interval = timeOut;
  node.absTime = timerGetTimeInMilliseconds() + timeOut;

 /* if ( (loc = listFind(tm->timer, listHead(tm->timer), (void *)&node)) >=0)
    etimerDelete(timer, (HETIMERELEM)loc);*/

  if (( loc = listAddHead(tm->timer, (void *)&node) ) < 0)
    return (HETIMERELEM)RVERROR;

  if( bheapInsert(tm->heap, (BHeapNode)(loc)) == RVERROR )
    return (HETIMERELEM)RVERROR;

  return ((HETIMERELEM)loc);
}
void test_listAddHead_0x200_given_head_contain_0x100()
{
  LinkedList list ;
  ListElement listElement1 ;
  ListElement listElement2;
  
  initLinkedList(&list);
  
  listElementCreate(&listElement1,0x100);
  listElementCreate(&listElement2,0x200);
  
  listAddHead(&list,&listElement1);
  listAddHead(&list,&listElement2);
  
  TEST_ASSERT_EQUAL(&listElement2,list.head);
  TEST_ASSERT_EQUAL(&listElement1,list.tail);
  TEST_ASSERT_EQUAL(0x200,list.head->data);
  TEST_ASSERT_EQUAL(&listElement1,list.head->next);
}
示例#4
0
/*
 *Function   : mlistAddList
 *Description: add empty list to mlist
 *Parameters : hlist - mlist handle
 *             list  - list number to get 'next' element
 *Return     : location of the new list in mlist
 */
int mlistAddList(HLIST hlist)
{
    mListDesc newList;
        newList.tail = RVERROR;
        newList.count = 0;
        /*h.e unused!!!
        newList.changed = 0;
        */
        newList.align = 0;
    return listAddHead(hlist, &newList);
}
void test_travel_1step_beforeTarget_given_3_element_list_target_Tail_should_return_list_1()
{
	LinkedList *list0 = listCreate(0x100);
	LinkedList *list1 = listCreate(0x200);
	LinkedList *list2 = listCreate(0x300);
	LinkedList *Head,*Tail, *Target ;
	
	listAddHead(&Head,list0);
	setTail(&Tail,list0);
	listAddTail(&Tail,list1);
	listAddTail(&Tail,list2);
	
	Target = travel_1step_beforeTarget(Head,Tail);
	
	TEST_ASSERT_EQUAL(list1,Target);

}
void test_travel_1step_beforeTarget_given_not_found_should_return_NULL()
{
	LinkedList *list0 = listCreate(0x100);
	LinkedList *list1 = listCreate(0x200);
	LinkedList *list2 = listCreate(0x300);
	LinkedList *list3 = listCreate(0x400);
	LinkedList *Head,*Tail, *Target ;
	
	listAddHead(&Head,list0);
	setTail(&Tail,Head);
	listAddTail(&Tail,list1);
	listAddTail(&Tail,list2);
	
	Target = travel_1step_beforeTarget(Head,list3);
	TEST_ASSERT_NULL(Target);
	
	DestroyAllList(&Head,&Tail);
}
void test_searchListForData_given_0x400_should_return_NULL_for_not_found()
{
	LinkedList *list0 = listCreate(0x100);
	LinkedList *list1 = listCreate(0x200);
	LinkedList *list2 = listCreate(0x300);
	LinkedList *Head,*Tail, *Found ;
	
	listAddHead(&Head,list0);
	setTail(&Tail,Head);
	listAddTail(&Tail,list1);
	listAddTail(&Tail,list2);
	
	Found = searchListForData(Head,0x400);
	
	TEST_ASSERT_NULL(Found);

	DestroyAllList(&Head,&Tail);
	
}
void test_listAddHead_given_emptyList()
{
  LinkedList list ;
  ListElement listElement ;
  
  initLinkedList(&list);
  
  listElementCreate(&listElement,0x100);
  
  listAddHead(&list,&listElement);
  
  TEST_ASSERT_EQUAL(&listElement,list.head);
  TEST_ASSERT_EQUAL(&listElement,list.tail);
  TEST_ASSERT_EQUAL(0x100,list.head->data);
  TEST_ASSERT_EQUAL(NULL,list.head->next);
    TEST_ASSERT_EQUAL(0x100,list.tail->data);
  TEST_ASSERT_EQUAL(NULL,list.tail->next);
  
}
void test_searchListForData_given_0x300_should_return_list2()
{
	LinkedList *list0 = listCreate(0x100);
	LinkedList *list1 = listCreate(0x200);
	LinkedList *list2 = listCreate(0x300);
	LinkedList *Head,*Tail, *Found ;
	
	listAddHead(&Head,list0);
	setTail(&Tail,Head);
	listAddTail(&Tail,list1);
	listAddTail(&Tail,list2);
	
	Found = searchListForData(Head,0x300);
	
	TEST_ASSERT_EQUAL(list2,Found);
	TEST_ASSERT_EQUAL(0x300,Found->data);
	
	DestroyAllList(&Head,&Tail);
	
}