From d2389d996b090da4caddf90c8e8c96241be5b2e7 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Mon, 15 Sep 2025 17:02:35 +0200 Subject: [PATCH] add test for ignore medium --- CMakeLists.txt | 1 + libs/spandisc/tests/CMakeLists.txt | 17 +++++++++++++ libs/spandisc/tests/splitter-test.c | 39 +++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 libs/spandisc/tests/CMakeLists.txt create mode 100644 libs/spandisc/tests/splitter-test.c diff --git a/CMakeLists.txt b/CMakeLists.txt index d93f83e..81b24a1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 index 0000000..3dcc544 --- /dev/null +++ b/libs/spandisc/tests/CMakeLists.txt @@ -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 index 0000000..53882f7 --- /dev/null +++ b/libs/spandisc/tests/splitter-test.c @@ -0,0 +1,39 @@ +#include +#include +#include +#include +#include +#include +#include + +#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 -- 2.47.3