Kajetan Johannes Hammerle преди 7 месеца
родител
ревизия
b1a853b3bf
променени са 6 файла, в които са добавени 51 реда и са изтрити 20 реда
  1. 0 1
      CMakeLists.txt
  2. 3 2
      include/core/List.h
  3. 1 1
      tasks
  4. 0 13
      test/TestInstances.c
  5. 2 0
      test/modules/ComponentsTests.c
  6. 45 3
      test/modules/ListTests.c

+ 0 - 1
CMakeLists.txt

@@ -26,7 +26,6 @@ set(SRC
 
 set(SRC_TESTS
     "test/Main.c"
-    "test/TestInstances.c"
     "test/modules/BitArrayTests.c"
     "test/modules/BoxTests.c"
     "test/modules/BufferTests.c"

+ 3 - 2
include/core/List.h

@@ -29,8 +29,9 @@
     void removeListLast##N(List##N* l);                                        \
     T* getListStart##N(const List##N* l);                                      \
     T* getListEnd##N(const List##N* l);                                        \
+    typedef size_t (*ToString##N)(const T* data, char* buffer, size_t n);      \
     size_t toStringList##N(const List##N* l, char* buffer, size_t n,           \
-                           CoreToString c);
+                           ToString##N c);
 
 #define LIST_SOURCE(T, N)                                                      \
     void initList##N(List##N* l) {                                             \
@@ -111,7 +112,7 @@
     }                                                                          \
                                                                                \
     size_t toStringList##N(const List##N* l, char* buffer, size_t n,           \
-                           CoreToString c) {                                   \
+                           ToString##N c) {                                    \
         size_t w = 0;                                                          \
         coreStringAdd(&w, &buffer, &n, coreToString(buffer, n, "["));          \
         T* end = getListEnd##N(l);                                             \

+ 1 - 1
tasks

@@ -215,6 +215,6 @@ if $coverage; then
     else
         files=$(find build_debug -name *.profraw)
         llvm-profdata-16 merge -sparse $files -o build_debug/default.profdata
-        llvm-cov-16 show ./build_debug/test -instr-profile=build_debug/default.profdata --ignore-filename-regex="test/" -line-coverage-lt=100
+	llvm-cov-16 show ./build_debug/test -instr-profile=build_debug/default.profdata --ignore-filename-regex="test/" -line-coverage-lt=100
     fi
 fi

+ 0 - 13
test/TestInstances.c

@@ -1,13 +0,0 @@
-#include "core/Components.h"
-#include "core/Vector.h"
-
-LIST_SOURCE(size_t, Size)
-
-LIST(CoreVector3, V3)
-LIST_SOURCE(CoreVector3, V3)
-
-LIST(int, Int)
-LIST_SOURCE(int, Int)
-
-COMPONENTS(int, Int)
-COMPONENTS_SOURCE(int, Int)

+ 2 - 0
test/modules/ComponentsTests.c

@@ -3,7 +3,9 @@
 #include "core/Components.h"
 
 LIST(int, Int)
+LIST_SOURCE(int, Int)
 COMPONENTS(int, Int)
+COMPONENTS_SOURCE(int, Int)
 
 static void testAddForEach() {
     Components c;

+ 45 - 3
test/modules/ListTests.c

@@ -5,7 +5,10 @@
 #include "core/Vector.h"
 
 LIST(size_t, Size)
+LIST_SOURCE(size_t, Size)
 LIST(Vector3, V3)
+LIST_SOURCE(Vector3, V3)
+LIST(int, Int)
 
 static void testAdd() {
     ListSize list;
@@ -83,7 +86,8 @@ static void testToString1() {
     addListDataSize(&list, 243);
     addListDataSize(&list, 423);
     char buffer[128];
-    size_t n = toStringListSize(&list, buffer, sizeof(buffer), toStringSize);
+    size_t n = toStringListSize(&list, buffer, sizeof(buffer),
+                                (ToStringSize)toStringSize);
     TEST_SIZE(13, n);
     TEST_STRING("[1, 243, 423]", buffer);
     destroyListSize(&list);
@@ -94,7 +98,8 @@ static void testToString2() {
     initListSize(&list);
     addListDataSize(&list, 1);
     char buffer[128];
-    size_t n = toStringListSize(&list, buffer, sizeof(buffer), toStringSize);
+    size_t n = toStringListSize(&list, buffer, sizeof(buffer),
+                                (ToStringSize)toStringSize);
     TEST_SIZE(3, n);
     TEST_STRING("[1]", buffer);
     destroyListSize(&list);
@@ -104,7 +109,8 @@ static void testToString3() {
     ListSize list;
     initListSize(&list);
     char buffer[128];
-    size_t n = toStringListSize(&list, buffer, sizeof(buffer), toStringSize);
+    size_t n = toStringListSize(&list, buffer, sizeof(buffer),
+                                (ToStringSize)toStringSize);
     TEST_SIZE(2, n);
     TEST_STRING("[]", buffer);
     destroyListSize(&list);
@@ -177,11 +183,46 @@ static void testStruct() {
     initListV3(&list);
     addListDataV3(&list, v);
     addListDataV3(&list, (Vector3){2, 3, 4});
+    char buffer[128];
+    size_t n = toStringListV3(&list, buffer, sizeof(buffer), coreToStringV3);
+    TEST_SIZE(46, n);
+    TEST_STRING("[[1.000, 2.000, 3.000], [2.000, 3.000, 4.000]]", buffer);
+    addLastListDataV3(&list);
+    addLastListDataV3(&list);
+    TEST_SIZE(4, (size_t)(getListEndV3(&list) - getListStartV3(&list)));
+    removeListIndexV3(&list, 1);
+    removeListIndexBySwapV3(&list, 1);
+    removeListLastV3(&list);
     Vector3* entry = getListIndexV3(&list, 0);
     TEST_V3(&v, entry);
+    clearListV3(&list);
+    TEST_SIZE(0, list.length);
     destroyListV3(&list);
 }
 
+static void testIntList() {
+    ListInt list;
+    initListInt(&list);
+    addListDataInt(&list, 5);
+    addListDataInt(&list, 7);
+    char buffer[128];
+    size_t n = toStringListInt(&list, buffer, sizeof(buffer),
+                               (ToStringInt)coreToStringInt);
+    TEST_SIZE(6, n);
+    TEST_STRING("[5, 7]", buffer);
+    addLastListDataInt(&list);
+    addLastListDataInt(&list);
+    TEST_SIZE(4, (size_t)(getListEndInt(&list) - getListStartInt(&list)));
+    removeListIndexInt(&list, 1);
+    removeListIndexBySwapInt(&list, 1);
+    removeListLastInt(&list);
+    int* entry = getListIndexInt(&list, 0);
+    TEST_INT(5, *entry);
+    clearListInt(&list);
+    TEST_SIZE(0, list.length);
+    destroyListInt(&list);
+}
+
 void testList(bool light) {
     testAdd();
     testMultipleAdd();
@@ -197,4 +238,5 @@ void testList(bool light) {
     testRemoveLast();
     testInvalidReserve();
     testStruct();
+    testIntList();
 }