]> gitweb.hhaalo.de Git - discspan.git/commitdiff
add test for ignore medium
authorBastian Dehn <hhaalo@arcor.de>
Mon, 15 Sep 2025 15:02:35 +0000 (17:02 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Mon, 15 Sep 2025 15:02:35 +0000 (17:02 +0200)
CMakeLists.txt
libs/spandisc/tests/CMakeLists.txt [new file with mode: 0644]
libs/spandisc/tests/splitter-test.c [new file with mode: 0644]

index d93f83eea3fa90e2b51dc199cd3cebe6fe0fd45a..81b24a1144570945ee2cddc291be4c86b184835b 100644 (file)
@@ -30,6 +30,7 @@ message(VERBOSE "Include directory: libs/spandisc/include")
 include_directories(libs/spandisc/src)
 message(STATUS "Include subproject spandisc: libs/spandisc")
 add_subdirectory(libs/spandisc/src)
+add_subdirectory(libs/spandisc/tests)
 
 # create target from source
 file(GLOB SOURCES src/*.c)
diff --git a/libs/spandisc/tests/CMakeLists.txt b/libs/spandisc/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..3dcc544
--- /dev/null
@@ -0,0 +1,17 @@
+cmake_minimum_required(VERSION 3.13.4)
+
+project(spandisc-tests)
+
+find_package(CMOCKA REQUIRED)
+message(STATUS "find cmocka: ${CMOCKA_LIBRARIES}")
+
+add_executable(splitter-test
+       splitter-test.c)
+target_link_libraries(splitter-test
+       ${CMOCKA_LIBRARIES}
+       spandisc
+       m)
+
+add_custom_target(run-splitter-test
+       ALL ./splitter-test
+       DEPENDS splitter-test)
\ No newline at end of file
diff --git a/libs/spandisc/tests/splitter-test.c b/libs/spandisc/tests/splitter-test.c
new file mode 100644 (file)
index 0000000..53882f7
--- /dev/null
@@ -0,0 +1,39 @@
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <setjmp.h>
+#include <cmocka.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+#include "../src/splitter.h"
+
+void ignore_media_tests()
+{
+       medium_t* srcdata = init_medium();
+       srcdata->freespace = 500;
+       srcdata->filearray = malloc(sizeof(file_size_t*));
+       *srcdata->filearray = malloc(sizeof(file_size_t));
+       srcdata->filearray[0]->name = "too-big-file";
+       srcdata->filearray[0]->fsize = 600;
+       srcdata->length = 1;
+
+       medium_t* ignore_medium = ignore(srcdata);
+
+       assert_string_equal(ignore_medium->filearray[0]->name, "too-big-file");
+       assert_int_equal(ignore_medium->length, 1);
+
+       free_medium(srcdata);
+       free(ignore_medium->filearray[0]);
+       ignore_medium->filearray[0] = NULL;
+       free_medium(ignore_medium);
+}
+
+int main()
+{
+       const struct CMUnitTest tests[] = {
+               cmocka_unit_test(ignore_media_tests)
+       };
+
+       return  cmocka_run_group_tests(tests, NULL, NULL);
+}
\ No newline at end of file