File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / confuse / tests / annotate.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 (4 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: 	char *comment;
    7: 	char *expect = "Now, is it this comment that goes with the option?";
    8: 	cfg_t *cfg;
    9: 	cfg_opt_t *opt;
   10: 	cfg_opt_t section_opts[] = {
   11: 		CFG_INT("key", 0, CFGF_NONE),
   12: 		CFG_BOOL("bool", 0, CFGF_NONE),
   13: 		CFG_STR("option", NULL, CFGF_NONE),
   14: 		CFG_END()
   15: 	};
   16: 	cfg_opt_t opts[] = {
   17: 		CFG_STR("option", NULL, CFGF_NONE),
   18: 		CFG_SEC("section", section_opts, CFGF_MULTI),
   19: 		CFG_END()
   20: 	};
   21: 
   22: 	cfg = cfg_init(opts, CFGF_COMMENTS);
   23: 	fail_unless(cfg != NULL);
   24: 
   25: 	fail_unless(cfg_parse(cfg, SRC_DIR "/annotate.conf") == CFG_SUCCESS);
   26: 
   27: 	/* Verify the parser read the correct comment for this tricky option */
   28: 	opt = cfg_getopt(cfg, "section|option");
   29: 	fail_unless(opt != NULL);
   30: 	comment = cfg_opt_getcomment(opt);
   31: 	fail_unless(comment != NULL);
   32: 	fail_unless(strcmp(comment, expect) == 0);
   33: 
   34: 	expect = "But what's the worst poetry in the universe?";
   35: 	fail_unless(cfg_opt_setcomment(opt, expect) == CFG_SUCCESS);
   36: 
   37: 	cfg_opt_setnstr(opt, "Paula Nancy Millstone Jennings was a poet who wrote the worst poetry in "
   38: 			"the universe. In fact, her poetry is still considered to be the worst in "
   39: 			"the Galaxy, closely followed by that of the Azgoths of Kria and the "
   40: 			"Vogons, in that order.", 0);
   41: 
   42: 	/* Verify that the comment is not reset when changing option value */
   43: 	comment = cfg_opt_getcomment(opt);
   44: 	fail_unless(comment != NULL);
   45: 	fail_unless(strcmp(comment, expect) == 0);
   46: 
   47: 	cfg_print(cfg, stdout);
   48: 	fail_unless(cfg_free(cfg) == CFG_SUCCESS);
   49: 
   50: 	return 0;
   51: }
   52: 
   53: /**
   54:  * Local Variables:
   55:  *  indent-tabs-mode: t
   56:  *  c-file-style: "linux"
   57:  * End:
   58:  */

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