forked from bartvdbraak/blender
40 lines
981 B
C++
40 lines
981 B
C++
|
/* 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);
|
||
|
}
|