|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
#include <winpr/crt.h>
|
|
Packit Service |
fa4841 |
#include <winpr/tchar.h>
|
|
Packit Service |
fa4841 |
#include <winpr/collections.h>
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
int TestLinkedList(int argc, char* argv[])
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
int count;
|
|
Packit Service |
fa4841 |
wLinkedList* list;
|
|
Packit Service |
fa4841 |
list = LinkedList_New();
|
|
Packit Service |
fa4841 |
LinkedList_AddFirst(list, (void*)(size_t)1);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)2);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)3);
|
|
Packit Service |
fa4841 |
count = LinkedList_Count(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (count != 3)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("LinkedList_Count: expected 3, actual: %d\n", count);
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
LinkedList_Enumerator_Reset(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\t%" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
printf("LinkedList First: %" PRIuz " Last: %" PRIuz "\n", (size_t)LinkedList_First(list),
|
|
Packit Service |
fa4841 |
(size_t)LinkedList_Last(list));
|
|
Packit Service |
fa4841 |
LinkedList_RemoveFirst(list);
|
|
Packit Service |
fa4841 |
LinkedList_RemoveLast(list);
|
|
Packit Service |
fa4841 |
count = LinkedList_Count(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (count != 1)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("LinkedList_Count: expected 1, actual: %d\n", count);
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
LinkedList_Enumerator_Reset(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\t%" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
printf("LinkedList First: %" PRIuz " Last: %" PRIuz "\n", (size_t)LinkedList_First(list),
|
|
Packit Service |
fa4841 |
(size_t)LinkedList_Last(list));
|
|
Packit Service |
fa4841 |
LinkedList_RemoveFirst(list);
|
|
Packit Service |
fa4841 |
LinkedList_RemoveLast(list);
|
|
Packit Service |
fa4841 |
count = LinkedList_Count(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (count != 0)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("LinkedList_Count: expected 0, actual: %d\n", count);
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
LinkedList_AddFirst(list, (void*)(size_t)4);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)5);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)6);
|
|
Packit Service |
fa4841 |
count = LinkedList_Count(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
if (count != 3)
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("LinkedList_Count: expected 3, actual: %d\n", count);
|
|
Packit Service |
fa4841 |
return -1;
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
LinkedList_Enumerator_Reset(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\t%" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
printf("LinkedList First: %" PRIuz " Last: %" PRIuz "\n", (size_t)LinkedList_First(list),
|
|
Packit Service |
fa4841 |
(size_t)LinkedList_Last(list));
|
|
Packit Service |
fa4841 |
LinkedList_Remove(list, (void*)(size_t)5);
|
|
Packit Service |
fa4841 |
LinkedList_Enumerator_Reset(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\t%" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
printf("LinkedList First: %" PRIuz " Last: %" PRIuz "\n", (size_t)LinkedList_First(list),
|
|
Packit Service |
fa4841 |
(size_t)LinkedList_Last(list));
|
|
Packit Service |
fa4841 |
LinkedList_Free(list);
|
|
Packit Service |
fa4841 |
/* Test enumerator robustness */
|
|
Packit Service |
fa4841 |
/* enumerator on an empty list */
|
|
Packit Service |
fa4841 |
list = LinkedList_New();
|
|
Packit Service |
fa4841 |
LinkedList_Enumerator_Reset(list);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\terror: %" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
LinkedList_Free(list);
|
|
Packit Service |
fa4841 |
/* Use an enumerator without reset */
|
|
Packit Service |
fa4841 |
list = LinkedList_New();
|
|
Packit Service |
fa4841 |
LinkedList_AddFirst(list, (void*)(size_t)4);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)5);
|
|
Packit Service |
fa4841 |
LinkedList_AddLast(list, (void*)(size_t)6);
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
while (LinkedList_Enumerator_MoveNext(list))
|
|
Packit Service |
fa4841 |
{
|
|
Packit Service |
fa4841 |
printf("\t%" PRIuz "\n", (size_t)LinkedList_Enumerator_Current(list));
|
|
Packit Service |
fa4841 |
}
|
|
Packit Service |
fa4841 |
|
|
Packit Service |
fa4841 |
printf("\n");
|
|
Packit Service |
fa4841 |
LinkedList_Free(list);
|
|
Packit Service |
fa4841 |
return 0;
|
|
Packit Service |
fa4841 |
}
|