Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2eacc79c authored by Rehas Sachdeva's avatar Rehas Sachdeva Committed by Matthew Wilcox
Browse files

radix tree test suite: Add test for idr_get_next()



Assert that idr_get_next() returns the next populated entry in the tree with
an ID greater than or equal to the value pointed to by @nextid argument.

Signed-off-by: default avatarRehas Sachdeva <aquannie@gmail.com>
Signed-off-by: default avatarMatthew Wilcox <mawilcox@microsoft.com>
parent 2d6be4ab
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -153,6 +153,30 @@ void idr_nowait_test(void)
	idr_destroy(&idr);
}

void idr_get_next_test(void)
{
	unsigned long i;
	int nextid;
	DEFINE_IDR(idr);

	int indices[] = {4, 7, 9, 15, 65, 128, 1000, 99999, 0};

	for(i = 0; indices[i]; i++) {
		struct item *item = item_create(indices[i], 0);
		assert(idr_alloc(&idr, item, indices[i], indices[i+1],
				 GFP_KERNEL) == indices[i]);
	}

	for(i = 0, nextid = 0; indices[i]; i++) {
		idr_get_next(&idr, &nextid);
		assert(nextid == indices[i]);
		nextid++;
	}

	idr_for_each(&idr, item_idr_free, &idr);
	idr_destroy(&idr);
}

void idr_checks(void)
{
	unsigned long i;
@@ -202,6 +226,7 @@ void idr_checks(void)
	idr_alloc_test();
	idr_null_test();
	idr_nowait_test();
	idr_get_next_test();
}

/*