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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/gtests/blenlib/BLI_listbase_test.cc39
-rw-r--r--tests/gtests/blenlib/CMakeLists.txt2
2 files changed, 41 insertions, 0 deletions
diff --git a/tests/gtests/blenlib/BLI_listbase_test.cc b/tests/gtests/blenlib/BLI_listbase_test.cc
new file mode 100644
index 00000000000..4b4d5d80a43
--- /dev/null
+++ b/tests/gtests/blenlib/BLI_listbase_test.cc
@@ -0,0 +1,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);
+}
diff --git a/tests/gtests/blenlib/CMakeLists.txt b/tests/gtests/blenlib/CMakeLists.txt
index d55fdd1cd2a..07b89a9042e 100644
--- a/tests/gtests/blenlib/CMakeLists.txt
+++ b/tests/gtests/blenlib/CMakeLists.txt
@@ -25,6 +25,7 @@ set(INC
.
..
../../../source/blender/blenlib
+ ../../../source/blender/makesdna
../../../intern/guardedalloc
)
@@ -39,3 +40,4 @@ BLENDER_TEST(BLI_math_color "bf_blenlib")
BLENDER_TEST(BLI_math_geom "bf_blenlib")
BLENDER_TEST(BLI_string "bf_blenlib")
BLENDER_TEST(BLI_path_util "bf_blenlib;extern_wcwidth;${ZLIB_LIBRARIES}")
+BLENDER_TEST(BLI_listbase "bf_blenlib")