return config_string;
}
-program_config* load_config(const char* config_stream)
+program_config* load_config(const char* config_string)
{
program_config* config = malloc(sizeof(program_config));
- config->scanner_url = NULL;
- config->username = NULL;
+ config->scanner_url = malloc(sizeof(char));
+ *config->scanner_url = '\0';
+ config->username = malloc(sizeof(char));
+ *config->username = '\0';
config->heartbeat = 1;
config->ssl_verify = 0;
+ if (config_string == NULL)
+ return config;
+
cfg_t* cfg = NULL;
char* value_str = NULL;
size_t str_length = 0;
- if (strlen(config_stream) <= 0)
+ if (strlen(config_string) <= 0)
return config;
cfg_opt_t opts[] = {
CFG_STR("username", "", CFGF_NONE),
CFG_STR("scanner_url", "", CFGF_NONE),
- CFG_INT("heartbeat_seconds", 0, CFGF_NONE),
- CFG_INT("ssl_verify", 0, CFGF_NONE),
+ CFG_INT("heartbeat_seconds", 1, CFGF_NONE),
+ CFG_BOOL("ssl_verify", 0, CFGF_NONE),
CFG_END()
};
cfg = cfg_init(opts, 0);
- cfg_parse_buf(cfg, config_stream);
+ cfg_parse_buf(cfg, config_string);
value_str = cfg_getstr(cfg, "scanner_url");
str_length = strlen(value_str) + 1;
- config->scanner_url = malloc(sizeof(char) * str_length);
+ config->scanner_url = realloc(config->scanner_url, sizeof(char) * str_length);
memcpy(config->scanner_url, value_str, str_length);
value_str = cfg_getstr(cfg, "username");
str_length = strlen(value_str) + 1;
- config->username = malloc(sizeof(char) * str_length);
+ config->username = realloc(config->username, sizeof(char) * str_length);
memcpy(config->username, value_str, str_length);
config->heartbeat = cfg_getint(cfg, "heartbeat_seconds");
if (config->heartbeat < 1)
config->heartbeat = 1;
- config->ssl_verify = cfg_getint(cfg, "ssl_verify");
+ config->ssl_verify = cfg_getbool(cfg, "ssl_verify");
cfg_free(cfg);
cfg = NULL;
username = "muster"
# Scanner heart beat is by default 1 seconds before check next scan status,
# heartbeat_seconds = 1
-# SSL Verification default 0 (OFF)
-# ssl_verify = 1
\ No newline at end of file
+# SSL Verification (default: false)
+# ssl_verify = true
\ No newline at end of file
return;
}
+void kds_s2000w_config_null()
+{
+ program_config* config = load_config(NULL);
+
+ assert_non_null(config);
+ assert_string_equal(config->scanner_url, "");
+ assert_string_equal(config->username, "");
+ assert_int_equal(config->heartbeat, 1);
+ assert_int_equal(config->ssl_verify, 0);
+
+ free_config(config);
+ config = NULL;
+}
+
+void kds_s2000w_config_read_empty_config()
+{
+ program_config* config = load_config("");
+
+ assert_non_null(config);
+ assert_string_equal(config->scanner_url, "");
+ assert_string_equal(config->username, "");
+ assert_int_equal(config->heartbeat, 1);
+ assert_int_equal(config->ssl_verify, 0);
+
+ free_config(config);
+ config = NULL;
+}
+
void kds_s2000w_config_read_parameter()
{
const char* input_stream = " scanner_url = http://scanner.example.com \n";
assert_string_equal(config->scanner_url, "http://scanner.example.com");
- free(config->scanner_url);
- config->scanner_url = NULL;
- free(config->username);
- config->username = NULL;
- free(config);
+ free_config(config);
config = NULL;
}
assert_string_equal(config->scanner_url, "http://scanner.example.com");
- free(config->scanner_url);
- config->scanner_url = NULL;
- free(config->username);
- config->username = NULL;
- free(config);
+ free_config(config);
config = NULL;
}
assert_string_equal(config->scanner_url, "http://scanner.example.com");
assert_string_equal(config->username, "Mustermann");
- free(config->scanner_url);
- config->scanner_url = NULL;
- free(config->username);
- config->username = NULL;
- free(config);
+ free_config(config);
config = NULL;
}
-void kds_s2000w_config_read_empty_config()
-{
- const char* input_stream = "";
-
- program_config* config = load_config(input_stream);
-
- 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()
+void kds_s200w_config_heartbeat_five_seconds()
{
- const char* input_stream = "";
+ const char* input_stream = "heartbeat_seconds = 5\n";
program_config* config = load_config(input_stream);
- assert_int_equal(config->heartbeat, 1);
+ assert_int_equal(config->heartbeat, 5);
- free(config);
+ free_config(config);
config = NULL;
}
-void kds_s200w_config_default_heartbeat_five_seconds()
+void kds_s200w_config_default_heartbeat_zero_set_default()
{
- const char* input_stream = "heartbeat_seconds = 5\n";
+ const char* input_stream = "heartbeat_seconds = 0\n";
program_config* config = load_config(input_stream);
- assert_int_equal(config->heartbeat, 5);
+ assert_int_equal(config->heartbeat, 1);
- free(config->scanner_url);
- config->scanner_url = NULL;
- free(config->username);
- config->username = NULL;
- free(config);
+ free_config(config);
config = NULL;
}
-void kds_s200w_config_default_heartbeat_zero_set_default()
+void kds_s200w_config_ssl_verify_on()
{
- const char* input_stream = "heartbeat_seconds = 0\n";
+ const char* input_stream = "ssl_verify = true\n";
program_config* config = load_config(input_stream);
- assert_int_equal(config->heartbeat, 1);
+ assert_int_equal(config->ssl_verify, 1);
- free(config->scanner_url);
- config->scanner_url = NULL;
- free(config->username);
- config->username = NULL;
- free(config);
+ free_config(config);
config = NULL;
}
\ No newline at end of file
#include <setjmp.h>
#include <cmocka.h>
+void kds_s2000w_config_null();
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();
+void kds_s200w_config_heartbeat_five_seconds();
void kds_s200w_config_default_heartbeat_zero_set_default();
+void kds_s200w_config_ssl_verify_on();
#endif
\ No newline at end of file
int main()
{
const struct CMUnitTest read_config[] = {
+ cmocka_unit_test(kds_s2000w_config_null),
+ cmocka_unit_test(kds_s2000w_config_read_empty_config),
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_s200w_config_default_heartbeat),
- cmocka_unit_test(kds_s200w_config_default_heartbeat_five_seconds),
- cmocka_unit_test(kds_s200w_config_default_heartbeat_zero_set_default)
+ cmocka_unit_test(kds_s200w_config_heartbeat_five_seconds),
+ cmocka_unit_test(kds_s200w_config_default_heartbeat_zero_set_default),
+ cmocka_unit_test(kds_s200w_config_ssl_verify_on)
};
return cmocka_run_group_tests(read_config, NULL, NULL);