]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
add config for heartbeat
authorBastian Dehn <hhaalo@arcor.de>
Thu, 18 Apr 2024 14:00:57 +0000 (16:00 +0200)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 18 Apr 2024 14:00:57 +0000 (16:00 +0200)
src/kds_s2000w_config.c
src/kds_s2000w_config.h
tests/kds_s2000w_read_config_tests.c
tests/kds_s2000w_read_config_tests.h
tests/kds_s2000w_read_config_tests_run.c

index d50b081003f865f4ebea8a7c41bdc5d185f79ada..46f497dbbff1f59defb238ab04fa4e00246afd11 100644 (file)
@@ -36,6 +36,7 @@ void load_config(program_config* config, const char* config_stream)
 {
        config->scanner_url = NULL;
        config->username = NULL;
+       config->heartbeat = 2;
 
        cfg_t* cfg = NULL;
        char* value_str = NULL;
@@ -48,6 +49,7 @@ void load_config(program_config* config, const char* config_stream)
        cfg_opt_t opts[] = {
                CFG_STR("username", "", CFGF_NONE),
                CFG_STR("scanner_url", "", CFGF_NONE),
+               CFG_INT("heartbeat_seconds", 2, CFGF_NONE),
                CFG_END()
        };
 
@@ -65,6 +67,8 @@ void load_config(program_config* config, const char* config_stream)
        config->username = malloc(sizeof(char) * str_length);
        memcpy(config->username, value_str, str_length);
 
+       config->heartbeat = cfg_getint(cfg, "heartbeat_seconds");
+
        cfg_free(cfg);
        cfg = NULL;
 }
\ No newline at end of file
index 8eadc7f922cf7d1304c03233c0b25e0e735e5e37..918c5ef9c56ca13a6f1a2b2606d62f8f170a3c60 100644 (file)
@@ -4,6 +4,7 @@
 typedef struct {
        char* scanner_url;
        char* username;
+       unsigned int heartbeat;
 } program_config;
 
 char* read_config_file(const char* filename);
index 04842a7225360ed1be5dc6ed7e31ade4e9d111a8..fe6e64276f3c871220d4ab904851832278fe7dc4 100644 (file)
@@ -84,6 +84,36 @@ void kds_s2000w_config_read_empty_config()
 
        assert_null(config->scanner_url);
 
+       free(config->scanner_url);
+       config->scanner_url = NULL;
+       free(config->username);
+       config->username = NULL;
+       free(config);
+       config = NULL;
+}
+
+void kds_s200w_config_default_heartbeat()
+{
+       const char* input_stream = "";
+
+       program_config* config = malloc(sizeof(program_config));
+       load_config(config, input_stream);
+
+       assert_int_equal(config->heartbeat, 2);
+
+       free(config);
+       config = NULL;
+}
+
+void kds_s200w_config_default_heartbeat_five_seconds()
+{
+       const char* input_stream = "heartbeat_seconds = 5\n";
+
+       program_config* config = malloc(sizeof(program_config));
+       load_config(config, input_stream);
+
+       assert_int_equal(config->heartbeat, 5);
+
        free(config->scanner_url);
        config->scanner_url = NULL;
        free(config->username);
index 68d91a713472e47a137d63600be4e90ddac34385..cfaf759731341bf1d6b1605e49c012fed01263da 100644 (file)
@@ -10,5 +10,7 @@ void kds_s2000w_config_read_parameter();
 void kds_s2000w_config_read_parameters_without_trim();
 void kds_s2000w_config_multiple_parameters();
 void kds_s2000w_config_read_empty_config();
+void kds_s200w_config_default_heartbeat();
+void kds_s200w_config_default_heartbeat_five_seconds();
 
 #endif
\ No newline at end of file
index 6f99f316322d270fd1d3f3321f73a217db9795b9..5a213ce2790e2e6887cb32c86368a0c3222d0f33 100644 (file)
@@ -6,7 +6,9 @@ int main()
                cmocka_unit_test(kds_s2000w_config_read_parameter),
                cmocka_unit_test(kds_s2000w_config_read_parameters_without_trim),
                cmocka_unit_test(kds_s2000w_config_multiple_parameters),
-               cmocka_unit_test(kds_s2000w_config_read_empty_config)
+               cmocka_unit_test(kds_s2000w_config_read_empty_config),
+               cmocka_unit_test(kds_s200w_config_default_heartbeat),
+               cmocka_unit_test(kds_s200w_config_default_heartbeat_five_seconds)
        };
 
        return cmocka_run_group_tests(read_config, NULL, NULL);