File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / confuse / tests / section_remove.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Mar 17 00:49:17 2021 UTC (3 years, 3 months ago) by misho
Branches: confuse, MAIN
CVS tags: v3_3, HEAD
confuse 3.3

    1: #include "check_confuse.h"
    2: #include <string.h>
    3: 
    4: int main(void)
    5: {
    6: 	static 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: 	const char *config_data =
   17: 		"section title_one { prop = 'value_one' }\n"
   18: 		"section title_two { prop = 'value_two' }\n"
   19: 		"section title_one { prop = 'value_one' }\n";
   20: 
   21: 	int rc;
   22: 	cfg_t *cfg = cfg_init(opts, CFGF_NONE);
   23: 
   24: 	fail_unless(cfg);
   25: 
   26: 	rc = cfg_parse_buf(cfg, config_data);
   27: 	fail_unless(rc == CFG_SUCCESS);
   28: 
   29: 	cfg_rmtsec(cfg, "section", "title_two");
   30: 	fail_unless(cfg_size(cfg, "section") == 1);
   31: 	fail_unless(strcmp(cfg_title(cfg_getnsec(cfg, "section", 0)), "title_one") == 0);
   32: 
   33: 	cfg_free(cfg);
   34: 
   35: 	cfg = cfg_init(opts, CFGF_NONE);
   36: 	fail_unless(cfg);
   37: 
   38: 	rc = cfg_parse_buf(cfg, config_data);
   39: 	fail_unless(rc == CFG_SUCCESS);
   40: 
   41: 	cfg_rmsec(cfg, "section");
   42: 	fail_unless(cfg_size(cfg, "section") == 1);
   43: 	fail_unless(strcmp(cfg_title(cfg_getnsec(cfg, "section", 0)), "title_two") == 0);
   44: 
   45: 	cfg_free(cfg);
   46: 
   47: 	cfg = cfg_init(opts, CFGF_NONE);
   48: 	fail_unless(cfg);
   49: 
   50: 	rc = cfg_parse_buf(cfg, config_data);
   51: 	fail_unless(rc == CFG_SUCCESS);
   52: 
   53: 	cfg_rmsec(cfg, "section=title_two");
   54: 	fail_unless(cfg_size(cfg, "section") == 1);
   55: 	fail_unless(strcmp(cfg_title(cfg_getnsec(cfg, "section", 0)), "title_one") == 0);
   56: 
   57: 	cfg_free(cfg);
   58: 
   59: 	return 0;
   60: }
   61: 
   62: /**
   63:  * Local Variables:
   64:  *  indent-tabs-mode: t
   65:  *  c-file-style: "linux"
   66:  * End:
   67:  */

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