-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,\
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}
#include <unistd.h>
#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*);
#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);