From: Bastian Dehn Date: Thu, 30 Oct 2025 16:48:28 +0000 (+0100) Subject: add malloc mock X-Git-Tag: v1.1.20^2~1^2~19 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8c74c08c108727576ae290ec0cbfc6a3c78028bc;p=sane-kds-s2000w-net.git add malloc mock --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 09d684a..ec9c268 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,8 @@ IF (RUN_TESTS) -pedantic \ -g \ -fsanitize=address \ --Wl,--wrap,kds_s2000w_client_init,\ +-Wl,--wrap,malloc,\ +--wrap,kds_s2000w_client_init,\ --wrap,kds_s2000w_client_free,\ --wrap,kds_s2000w_client_open_session,\ --wrap,kds_s2000w_client_close_session,\ diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 388b4b2..1377332 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -63,14 +63,16 @@ TARGET_LINK_LIBRARIES("kds_s2000w_option_descriptor_tests" sane-kds_s2000w_net-static) ADD_EXECUTABLE("kds_s2000w_image_type_check_tests" - "kds_s2000w_image_type_check_tests.c") + "kds_s2000w_image_type_check_tests.c" + "kds_s2000w_client_mock.c") ADD_DEPENDENCIES("kds_s2000w_image_type_check_tests" sane-kds_s2000w_net-static) TARGET_LINK_LIBRARIES("kds_s2000w_image_type_check_tests" ${CMOCKA_LIBRARY} sane-kds_s2000w_net-static) ADD_EXECUTABLE("kds_s2000w_pixel_converter_tests" - "kds_s2000w_pixel_converter_tests.c") + "kds_s2000w_pixel_converter_tests.c" + "kds_s2000w_client_mock.c") ADD_DEPENDENCIES("kds_s2000w_pixel_converter_tests" sane-kds_s2000w_net-static) TARGET_LINK_LIBRARIES("kds_s2000w_pixel_converter_tests" ${CMOCKA_LIBRARY} diff --git a/tests/kds_s2000w_client_mock.c b/tests/kds_s2000w_client_mock.c index 73a8074..1f51573 100644 --- a/tests/kds_s2000w_client_mock.c +++ b/tests/kds_s2000w_client_mock.c @@ -4,6 +4,26 @@ #include #include "kds_s2000w_client_mock.h" +extern void* __real_malloc(size_t size); +int8_t mock_no_mem_counter = -1; + +void set_no_mem_counter(int8_t counter) +{ + mock_no_mem_counter = counter; +} + +void* __wrap_malloc(size_t size) +{ + if (mock_no_mem_counter < 0) + return __real_malloc(size); + + mock_no_mem_counter--; + if (mock_no_mem_counter < 0) + return NULL; + + return __real_malloc(size); +} + void mock_response(response_t* resp) { const response_t* mock_resp = mock_type(response_t*); diff --git a/tests/kds_s2000w_client_mock.h b/tests/kds_s2000w_client_mock.h index f1eeceb..aa91e4f 100644 --- a/tests/kds_s2000w_client_mock.h +++ b/tests/kds_s2000w_client_mock.h @@ -8,6 +8,9 @@ #include "../src/kds_s2000w_client.h" #include "../src/kds_s2000w_image_converter.h" +void set_no_mem_counter(int8_t counter); +void* __wrap_malloc(size_t size); + void mock_response(response_t* resp); void __wrap_kds_s2000w_client_init(const char* scanner_url, const char* username, bool ssl_verify, uint8_t heartbeat);