File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / confuse / tests / section_title_dupes.c
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Jan 24 14:48:56 2017 UTC (7 years, 6 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: #include "check_confuse.h"
    2: #include <string.h>
    3: 
    4: int 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: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>