1#include "check_confuse.h" 2#include <string.h> 3 4int main(void) 5{ 6 cfg_opt_t section_opts[] = { 7 CFG_STR("prop", 0, CFGF_NONE), 8 CFG_END() 9 }; 10 11 cfg_opt_t opts[] = { 12 CFG_SEC("section", section_opts, CFGF_TITLE | CFGF_MULTI), 13 CFG_END() 14 }; 15 16 cfg_opt_t opts_no_dupes[] = { 17 CFG_SEC("section", section_opts, 18 CFGF_TITLE | CFGF_MULTI | CFGF_NO_TITLE_DUPES), 19 CFG_END() 20 }; 21 22 const char *config_data = 23 "section title_one { prop = 'value_one' }\n" 24 "section title_two { prop = 'value_two' }\n" 25 "section title_one { prop = 'value_one' }\n"; 26 27 int rc; 28 cfg_t *cfg = cfg_init(opts, CFGF_NONE); 29 fail_unless(cfg); 30 31 rc = cfg_parse_buf(cfg, config_data); 32 33 fail_unless(rc == CFG_SUCCESS); 34 35 fail_unless(cfg_size(cfg, "section") == 2); 36 37 fail_unless( 38 strcmp(cfg_title(cfg_getnsec(cfg, "section", 0)), "title_one") == 0); 39 fail_unless( 40 strcmp(cfg_title(cfg_getnsec(cfg, "section", 1)), "title_two") == 0); 41 42 cfg_free(cfg); 43 44 cfg = cfg_init(opts_no_dupes, CFGF_NONE); 45 fail_unless(cfg); 46 47 rc = cfg_parse_buf(cfg, config_data); 48 fail_unless(rc == CFG_PARSE_ERROR); 49 50 cfg_free(cfg); 51 52 return 0; 53} 54 55