]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add no mem test for config load
authorBastian Dehn <hhaalo@arcor.de>
Sat, 8 Nov 2025 07:56:20 +0000 (08:56 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 8 Nov 2025 07:56:49 +0000 (08:56 +0100)
src/kds_s2000w_config.c
tests/kds_s2000w_read_config_tests.c

index ee9cb1eb40384fb62be686726a5fcf4cd492a812..9fe937e2c43afa5bba8518a6c8e1c0f25df9b0a2 100644 (file)
@@ -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;
index b11af866857699aa5f5fb6b13ee275e83f814196..58aaeeaf3348711e44eb6096bc7196eca676a2b6 100644 (file)
@@ -5,8 +5,19 @@
 #include <cmocka.h>
 #include <stdlib.h>
 #include <string.h>
+#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);