Commit 08279ab9 authored by Bartosz Podrygajlo's avatar Bartosz Podrygajlo

Align return value of config_yaml_get to libconfig implementation

Now return value should be equal to number of processed input parameters like
in params_libconfig.
parent b6b377ff
......@@ -265,7 +265,7 @@ extern "C" int config_yaml_get(configmodule_interface_t *cfg, paramdef_t *cfgopt
}
}
config_yaml::GetParams(cfg, node, cfgoptions, numoptions);
return 0;
return numoptions;
}
extern "C" int config_yaml_getlist(configmodule_interface_t *cfg,
......
......@@ -125,7 +125,7 @@ TEST(yaml_config, test_high_recusion) {
p.type = TYPE_UINT16;
p.u16ptr = &value;
char prefix[] = "test.test1.test2.test3.test4";
EXPECT_EQ(config_yaml_get(cfg, &p, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &p, 1, prefix), 1);
EXPECT_EQ(value, i);
}
......@@ -175,7 +175,7 @@ TEST(yaml_config, test_string_auto_alloc) {
// Test automatic allocation of strings
char prefix[] = "test";
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_NE(param.strptr, nullptr);
EXPECT_EQ(strcmp(*param.strptr, "testvalue"), 0);
EXPECT_EQ(cfg->numptrs, 2);
......@@ -200,7 +200,7 @@ TEST(yaml_config, test_string_no_realloc) {
char prefix[] = "test";
char* non_null_pointer_to_pointer = nullptr;
param.strptr = &non_null_pointer_to_pointer;
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_EQ(param.strptr, &non_null_pointer_to_pointer);
EXPECT_EQ(strcmp(*param.strptr, "testvalue"), 0);
EXPECT_EQ(cfg->numptrs, 1);
......@@ -225,7 +225,7 @@ TEST(yaml_config, test_string_pointer_available) {
char prefix[] = "test";
char *container = (char *)malloc(sizeof(char) * 30);
param.strptr = &container;
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_EQ(param.strptr, &container);
EXPECT_EQ(strcmp(*param.strptr, "testvalue"), 0);
EXPECT_EQ(cfg->numptrs, 0);
......@@ -253,7 +253,7 @@ TEST(yaml_config, test_string_default_value) {
param.defstrval = default_value;
param.strptr = nullptr;
sprintf(param.optname, "%s", "stringvalue_missing");
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_NE(param.strptr, nullptr);
EXPECT_EQ(strcmp(*param.strptr, "default"), 0);
EXPECT_EQ(cfg->numptrs, 2) << " 2 pointers required, 1 for the string, one for the pointer-to string";
......@@ -276,7 +276,7 @@ TEST(yaml_config, test_stringlist) {
// Test automatic allocation of string lists
char prefix[] = "test";
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_NE(param.strptr, nullptr);
for (auto i = 0; i < param.numelt; i++) {
std::cout << (param.strlistptr)[i] << std::endl;
......@@ -302,7 +302,7 @@ TEST(yaml_config, test_list_of_mappings) {
// Test automatic allocation of string lists
char prefix1[] = "test.list.[0]";
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix1), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix1), 1);
EXPECT_NE(param.strptr, nullptr);
EXPECT_STREQ("value1", param.strlistptr[0]);
EXPECT_STREQ("value2", param.strlistptr[1]);
......@@ -310,7 +310,7 @@ TEST(yaml_config, test_list_of_mappings) {
char prefix2[] = "test.list.[1]";
param.strlistptr = nullptr;
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix2), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix2), 1);
EXPECT_NE(param.strptr, nullptr);
EXPECT_STREQ("value4", param.strlistptr[0]);
EXPECT_STREQ("value5", param.strlistptr[1]);
......@@ -334,7 +334,7 @@ TEST(yaml_config, test_int_array) {
// Test automatic allocation of int arrays
char prefix[] = "test";
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_NE(param.iptr, nullptr);
ASSERT_EQ(param.numelt, 4);
EXPECT_EQ(1, param.iptr[0]);
......@@ -345,7 +345,7 @@ TEST(yaml_config, test_int_array) {
param.uptr = nullptr;
param.numelt = 0;
sprintf(param.optname, "%s", "array2");
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_NE(param.uptr, nullptr);
ASSERT_EQ(param.numelt, 3);
EXPECT_EQ(1U, param.uptr[0]);
......@@ -355,7 +355,7 @@ TEST(yaml_config, test_int_array) {
param.uptr = nullptr;
param.numelt = 0;
sprintf(param.optname, "%s", "non-existent-array");
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 0);
EXPECT_EQ(config_yaml_get(cfg, &param, 1, prefix), 1);
EXPECT_EQ(param.uptr, nullptr);
ASSERT_EQ(param.numelt, 0);
......@@ -368,14 +368,24 @@ TEST(yaml_config, test_read_mapping_as_list) {
configmodule_interface_t *cfg = static_cast<configmodule_interface_t*>(calloc(1, sizeof(*cfg)));
cfg->cfgP[0] = strdup("test_read_mapping_as_list.yaml");
EXPECT_EQ(config_yaml_init(cfg), 0);
char cfgstring[] = "fhi_72";
paramlist_def_t pl = {0};
strncpy(pl.listname, "fhi_72", sizeof(pl.listname) - 1);
strncpy(pl.listname, cfgstring, sizeof(pl.listname) - 1);
config_yaml_getlist(cfg, &pl, NULL, 0, /* prefix */ NULL);
EXPECT_NE(pl.numelt, 0);
EXPECT_EQ(pl.numelt, 3);
paramdef_t params[4] = {0};
for (auto i = 0U; i < sizeofArray(params); i++) {
sprintf(params[i].optname, "%s%d", "element_", i+1);
params[i].type = TYPE_STRING;
params[i].paramflags = PARAMFLAG_MANDATORY;
}
params[sizeofArray(params) - 1].paramflags = 0;
int ret = config_yaml_get(cfg, params, sizeofArray(params), cfgstring);
EXPECT_EQ(ret, 4);
config_yaml_end(cfg);
free(cfg->cfgP[0]);
end_configmodule(cfg);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment