From fd773b6cb419fab25dbd925efca1bb18841cbaf0 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sat, 8 Nov 2025 08:56:20 +0100 Subject: [PATCH] add no mem test for config load --- src/kds_s2000w_config.c | 14 ++++++++++++++ tests/kds_s2000w_read_config_tests.c | 21 ++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index ee9cb1e..9fe937e 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -16,8 +16,22 @@ program_config_t* _kds_s2000w_config_init() if (config == NULL) return NULL; + config->scanner_url = NULL; + config->username = NULL; + config->scanner_url = malloc(sizeof(char)); + if (config->scanner_url == NULL) { + kds_s2000w_config_free(config); + config = NULL; + return NULL; + } + config->username = malloc(sizeof(char)); + if (config->username == NULL) { + kds_s2000w_config_free(config); + config = NULL; + return NULL; + } *config->scanner_url = '\0'; *config->username = '\0'; config->log_level = 0; diff --git a/tests/kds_s2000w_read_config_tests.c b/tests/kds_s2000w_read_config_tests.c index b11af86..58aaeea 100644 --- a/tests/kds_s2000w_read_config_tests.c +++ b/tests/kds_s2000w_read_config_tests.c @@ -5,8 +5,19 @@ #include #include #include +#include "kds_s2000w_client_mock.h" #include "../src/kds_s2000w_config.h" +void _kds_s2000w_config_no_mem(int16_t no_mem_counter) +{ + const char* input_stream = "profile = 1\n"; + + set_no_mem_counter(no_mem_counter); + program_config_t* config = kds_s2000w_config_load(input_stream); + + assert_null(config); +} + void kds_s2000w_config_null_test() { program_config_t* config = kds_s2000w_config_load(NULL); @@ -120,6 +131,13 @@ void kds_s2000w_config_profile_test() config = NULL; } +void kds_s2000w_config_load_no_mem_test() +{ + for (int16_t i = 0; i < 3; i++) { + _kds_s2000w_config_no_mem(i); + } +} + int main() { const struct CMUnitTest read_config[] = { @@ -131,7 +149,8 @@ int main() cmocka_unit_test(kds_s2000w_config_heartbeat_five_seconds_test), cmocka_unit_test(kds_s2000w_config_default_heartbeat_zero_set_default_test), cmocka_unit_test(kds_s2000w_config_ssl_verify_on_test), - cmocka_unit_test(kds_s2000w_config_profile_test) + cmocka_unit_test(kds_s2000w_config_profile_test), + cmocka_unit_test(kds_s2000w_config_load_no_mem_test) }; return cmocka_run_group_tests(read_config, NULL, NULL); -- 2.47.3