net/virtio: fix incorrect cast of void *
[dpdk.git] / test / test / test_cfgfile.c
index 8eabd71..37435b3 100644 (file)
@@ -153,6 +153,43 @@ test_cfgfile_sample2(void)
        return 0;
 }
 
+static int
+test_cfgfile_realloc_sections(void)
+{
+       struct rte_cfgfile *cfgfile;
+       int ret;
+       const char *value;
+
+       cfgfile = rte_cfgfile_load(CFG_FILES_ETC "/realloc_sections.ini", 0);
+       TEST_ASSERT_NOT_NULL(cfgfile, "Failed to load config file");
+
+       ret = rte_cfgfile_num_sections(cfgfile, NULL, 0);
+       TEST_ASSERT(ret == 9, "Unexpected number of sections: %d", ret);
+
+       ret = rte_cfgfile_has_section(cfgfile, "section9");
+       TEST_ASSERT(ret, "section9 missing");
+
+       ret = rte_cfgfile_section_num_entries(cfgfile, "section3");
+       TEST_ASSERT(ret == 21,
+                       "section3 unexpected number of entries: %d", ret);
+
+       ret = rte_cfgfile_section_num_entries(cfgfile, "section9");
+       TEST_ASSERT(ret == 8, "section9 unexpected number of entries: %d", ret);
+
+       value = rte_cfgfile_get_entry(cfgfile, "section9", "key8");
+       TEST_ASSERT(strcmp("value8_section9", value) == 0,
+                   "key unexpected value: %s", value);
+
+       ret = rte_cfgfile_save(cfgfile, "/tmp/cfgfile_save.ini");
+       TEST_ASSERT_SUCCESS(ret, "Failed to save *.ini file");
+       remove("/tmp/cfgfile_save.ini");
+
+       ret = rte_cfgfile_close(cfgfile);
+       TEST_ASSERT_SUCCESS(ret, "Failed to close cfgfile");
+
+       return 0;
+}
+
 static int
 test_cfgfile_invalid_section_header(void)
 {
@@ -192,6 +229,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)
 {
@@ -263,6 +329,9 @@ test_cfgfile(void)
        if (test_cfgfile_sample2())
                return -1;
 
+       if (test_cfgfile_realloc_sections())
+               return -1;
+
        if (test_cfgfile_invalid_section_header())
                return -1;
 
@@ -272,6 +341,9 @@ test_cfgfile(void)
        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;