X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=test%2Ftest%2Ftest_cfgfile.c;h=4cc9b14dd3c841049d0fa5bc44a5e4d2549f8483;hb=f1ae15bac8aaa75aeb4fa886fd4d74d34c373193;hp=a7de3706cadcf59445f7ddaf3b44de773e884a08;hpb=1a5efe749959e14a3af6c962bdfb51dcc14e6929;p=dpdk.git diff --git a/test/test/test_cfgfile.c b/test/test/test_cfgfile.c index a7de3706ca..4cc9b14dd3 100644 --- a/test/test/test_cfgfile.c +++ b/test/test/test_cfgfile.c @@ -129,6 +129,30 @@ test_cfgfile_sample1(void) return 0; } +static int +test_cfgfile_sample2(void) +{ + struct rte_cfgfile_parameters params; + struct rte_cfgfile *cfgfile; + int ret; + + /* override comment character */ + memset(¶ms, 0, sizeof(params)); + params.comment_character = '#'; + + cfgfile = rte_cfgfile_load_with_params(CFG_FILES_ETC "/sample2.ini", 0, + ¶ms); + TEST_ASSERT_NOT_NULL(cfgfile, "Failed to parse sample2.ini"); + + ret = _test_cfgfile_sample(cfgfile); + TEST_ASSERT_SUCCESS(ret, "Failed to validate sample file: %d", ret); + + ret = rte_cfgfile_close(cfgfile); + TEST_ASSERT_SUCCESS(ret, "Failed to close cfgfile"); + + return 0; +} + static int test_cfgfile_invalid_section_header(void) { @@ -140,6 +164,23 @@ test_cfgfile_invalid_section_header(void) return 0; } +static int +test_cfgfile_invalid_comment(void) +{ + struct rte_cfgfile_parameters params; + struct rte_cfgfile *cfgfile; + + /* override comment character with an invalid one */ + memset(¶ms, 0, sizeof(params)); + params.comment_character = '$'; + + cfgfile = rte_cfgfile_load_with_params(CFG_FILES_ETC "/sample2.ini", 0, + ¶ms); + TEST_ASSERT_NULL(cfgfile, "Expected failured did not occur"); + + return 0; +} + static int test_cfgfile_invalid_key_value_pair(void) { @@ -151,6 +192,35 @@ test_cfgfile_invalid_key_value_pair(void) return 0; } +static int +test_cfgfile_empty_key_value_pair(void) +{ + struct rte_cfgfile *cfgfile; + const char *value; + int ret; + + cfgfile = rte_cfgfile_load(CFG_FILES_ETC "/empty_key_value.ini", + CFG_FLAG_EMPTY_VALUES); + TEST_ASSERT_NOT_NULL(cfgfile, "Failed to parse empty_key_value.ini"); + + ret = rte_cfgfile_num_sections(cfgfile, NULL, 0); + TEST_ASSERT(ret == 1, "Unexpected number of sections: %d", ret); + + ret = rte_cfgfile_has_section(cfgfile, "section1"); + TEST_ASSERT(ret, "section1 missing"); + + ret = rte_cfgfile_section_num_entries(cfgfile, "section1"); + TEST_ASSERT(ret == 1, "section1 unexpected number of entries: %d", ret); + + value = rte_cfgfile_get_entry(cfgfile, "section1", "key"); + TEST_ASSERT(strlen(value) == 0, "key unexpected value: %s", value); + + ret = rte_cfgfile_close(cfgfile); + TEST_ASSERT_SUCCESS(ret, "Failed to close cfgfile"); + + return 0; +} + static int test_cfgfile_missing_section(void) { @@ -219,12 +289,21 @@ test_cfgfile(void) if (test_cfgfile_sample1()) return -1; + if (test_cfgfile_sample2()) + return -1; + if (test_cfgfile_invalid_section_header()) return -1; + if (test_cfgfile_invalid_comment()) + return -1; + if (test_cfgfile_invalid_key_value_pair()) return -1; + if (test_cfgfile_empty_key_value_pair()) + return -1; + if (test_cfgfile_missing_section()) return -1;