Blame winpr/libwinpr/utils/test/TestArrayList.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 TestArrayList(int argc, char* argv[])
Packit Service fa4841
{
Packit Service fa4841
	size_t index;
Packit Service fa4841
	int count;
Packit Service fa4841
	int rc;
Packit Service fa4841
	size_t val;
Packit Service fa4841
	wArrayList* arrayList;
Packit Service fa4841
	const size_t elemsToInsert = 10;
Packit Service fa4841
Packit Service fa4841
	arrayList = ArrayList_New(TRUE);
Packit Service fa4841
	if (!arrayList)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	for (index = 0; index < elemsToInsert; index++)
Packit Service fa4841
	{
Packit Service fa4841
		if (ArrayList_Add(arrayList, (void*)index) < 0)
Packit Service fa4841
			return -1;
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	count = ArrayList_Count(arrayList);
Packit Service fa4841
Packit Service fa4841
	printf("ArrayList count: %d\n", count);
Packit Service fa4841
Packit Service fa4841
	index = ArrayList_IndexOf(arrayList, (void*)(size_t)6, -1, -1);
Packit Service fa4841
Packit Service fa4841
	printf("ArrayList index: %" PRIdz "\n", index);
Packit Service fa4841
Packit Service fa4841
	if (index != 6)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	ArrayList_Insert(arrayList, 5, (void*)(size_t)100);
Packit Service fa4841
Packit Service fa4841
	index = ArrayList_IndexOf(arrayList, (void*)(size_t)6, -1, -1);
Packit Service fa4841
	printf("ArrayList index: %" PRIdz "\n", index);
Packit Service fa4841
Packit Service fa4841
	if (index != 7)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	ArrayList_Remove(arrayList, (void*)(size_t)100);
Packit Service fa4841
Packit Service fa4841
	rc = ArrayList_IndexOf(arrayList, (void*)(size_t)6, -1, -1);
Packit Service fa4841
	printf("ArrayList index: %d\n", rc);
Packit Service fa4841
Packit Service fa4841
	if (rc != 6)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	for (index = 0; index < elemsToInsert; index++)
Packit Service fa4841
	{
Packit Service fa4841
		val = (size_t)ArrayList_GetItem(arrayList, 0);
Packit Service fa4841
		if (!ArrayList_RemoveAt(arrayList, 0))
Packit Service fa4841
			return -1;
Packit Service fa4841
		if (val != index)
Packit Service fa4841
		{
Packit Service fa4841
			printf("ArrayList: shifted %" PRIdz " entries, expected value %" PRIdz ", got %" PRIdz
Packit Service fa4841
			       "\n",
Packit Service fa4841
			       index, index, val);
Packit Service fa4841
			return -1;
Packit Service fa4841
		}
Packit Service fa4841
	}
Packit Service fa4841
Packit Service fa4841
	rc = ArrayList_IndexOf(arrayList, (void*)(size_t)elemsToInsert, -1, -1);
Packit Service fa4841
	printf("ArrayList index: %d\n", rc);
Packit Service fa4841
	if (rc != -1)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	count = ArrayList_Count(arrayList);
Packit Service fa4841
	printf("ArrayList count: %d\n", count);
Packit Service fa4841
	if (count != 0)
Packit Service fa4841
		return -1;
Packit Service fa4841
Packit Service fa4841
	ArrayList_Clear(arrayList);
Packit Service fa4841
	ArrayList_Free(arrayList);
Packit Service fa4841
Packit Service fa4841
	return 0;
Packit Service fa4841
}