Blame winpr/libwinpr/utils/test/TestLinkedList.c

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
}