[Bf-blender-cvs] [1c8ac33] master: Fix incorrect comments in listbase, add unit test to verify change

Nicholas Bishop noreply at git.blender.org
Tue Aug 5 16:34:25 CEST 2014


Commit: 1c8ac33970f6e200f236914443d1f0ea3b2a8e0c
Author: Nicholas Bishop
Date:   Tue Aug 5 10:33:24 2014 -0400
Branches: master
https://developer.blender.org/rB1c8ac33970f6e200f236914443d1f0ea3b2a8e0c

Fix incorrect comments in listbase, add unit test to verify change

Reviewers: campbellbarton

Reviewed By: campbellbarton

Differential Revision: https://developer.blender.org/D708

===================================================================

M	source/blender/blenlib/intern/listbase.c
A	tests/gtests/blenlib/BLI_listbase_test.cc
M	tests/gtests/blenlib/CMakeLists.txt

===================================================================

diff --git a/source/blender/blenlib/intern/listbase.c b/source/blender/blenlib/intern/listbase.c
index 9c5f2ad..abf15d5 100644
--- a/source/blender/blenlib/intern/listbase.c
+++ b/source/blender/blenlib/intern/listbase.c
@@ -354,7 +354,7 @@ int BLI_countlist(const ListBase *listbase)
 }
 
 /**
- * Returns the nth element of \a listbase, numbering from 1.
+ * Returns the nth element of \a listbase, numbering from 0.
  */
 void *BLI_findlink(const ListBase *listbase, int number)
 {
@@ -372,7 +372,7 @@ void *BLI_findlink(const ListBase *listbase, int number)
 }
 
 /**
- * Returns the nth-last element of \a listbase, numbering from 1.
+ * Returns the nth-last element of \a listbase, numbering from 0.
  */
 void *BLI_rfindlink(const ListBase *listbase, int number)
 {
@@ -390,7 +390,7 @@ void *BLI_rfindlink(const ListBase *listbase, int number)
 }
 
 /**
- * Returns the position of \a vlink within \a listbase, numbering from 1, or -1 if not found.
+ * Returns the position of \a vlink within \a listbase, numbering from 0, or -1 if not found.
  */
 int BLI_findindex(const ListBase *listbase, const void *vlink)
 {
diff --git a/tests/gtests/blenlib/BLI_listbase_test.cc b/tests/gtests/blenlib/BLI_listbase_test.cc
new file mode 100644
index 0000000..4b4d5d8
--- /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 d55fdd1..07b89a9 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")




More information about the Bf-blender-cvs mailing list