Welcome to mirror list, hosted at ThFree Co, Russian Federation.

BLI_listbase_test.cc « blenlib « gtests « tests - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4b4d5d80a43684319fcd93cbe13c7f5f66b9b5c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* Apache License, Version 2.0 */

#include "testing/testing.h"

extern "C" {
#include "BLI_listbase.h"
#include "MEM_guardedalloc.h"
}

TEST(listbase, FindLinkOrIndex)
{
	ListBase lb;
	void *link1 = MEM_callocN(sizeof(Link), "link1");
	void *link2 = MEM_callocN(sizeof(Link), "link2");

	/* Empty list */
	BLI_listbase_clear(&lb);
	EXPECT_EQ(NULL, BLI_findlink(&lb, -1));
	EXPECT_EQ(NULL, BLI_findlink(&lb, 0));
	EXPECT_EQ(NULL, BLI_findlink(&lb, 1));
	EXPECT_EQ(NULL, BLI_rfindlink(&lb, -1));
	EXPECT_EQ(NULL, BLI_rfindlink(&lb, 0));
	EXPECT_EQ(NULL, BLI_rfindlink(&lb, 1));
	EXPECT_EQ(-1, BLI_findindex(&lb, link1));

	/* One link */
	BLI_addtail(&lb, link1);
	EXPECT_EQ(link1, BLI_findlink(&lb, 0));
	EXPECT_EQ(link1, BLI_rfindlink(&lb, 0));
	EXPECT_EQ(0, BLI_findindex(&lb, link1));

	/* Two links */
	BLI_addtail(&lb, link2);
	EXPECT_EQ(link2, BLI_findlink(&lb, 1));
	EXPECT_EQ(link2, BLI_rfindlink(&lb, 0));
	EXPECT_EQ(1, BLI_findindex(&lb, link2));

	BLI_freelistN(&lb);
}