Annotation of embedaddon/confuse/tests/ignore_parm.c, revision 1.1
1.1 ! misho 1: /* Test handling of parameters that should be ignored.
! 2: */
! 3:
! 4: #include <string.h>
! 5: #include <stdlib.h>
! 6: #include "check_confuse.h"
! 7:
! 8: cfg_opt_t section_opts[] = {
! 9: CFG_STR("section_parameter", NULL, CFGF_NONE),
! 10: CFG_END()
! 11: };
! 12:
! 13: cfg_opt_t opts[] = {
! 14: CFG_STR("parameter", NULL, CFGF_NONE),
! 15: CFG_SEC("section", section_opts, CFGF_TITLE | CFGF_MULTI),
! 16: CFG_END()
! 17: };
! 18:
! 19: static int testconfig(const char *buf)
! 20: {
! 21: cfg_t *cfg;
! 22:
! 23: cfg = cfg_init(opts, CFGF_IGNORE_UNKNOWN);
! 24: if (!cfg)
! 25: return 0;
! 26:
! 27: if (cfg_parse_buf(cfg, buf) != CFG_SUCCESS)
! 28: return 0;
! 29:
! 30: cfg_free(cfg);
! 31:
! 32: return 1;
! 33: }
! 34:
! 35: int main(void)
! 36: {
! 37: /* Sanity check cases that don't need to ignore parameters. */
! 38: fail_unless(testconfig("parameter=5"));
! 39: fail_unless(testconfig("parameter=5\n"
! 40: "section mysection {\n"
! 41: "\tsection_parameter=1\n"
! 42: "}"));
! 43:
! 44: /* Ignore each type (no lists) */
! 45: fail_unless(testconfig("unknown_int=1"));
! 46: fail_unless(testconfig("unknown_string=\"hello\""));
! 47: fail_unless(testconfig("unknown_float=1.1"));
! 48: fail_unless(testconfig("unknown_bool=true"));
! 49:
! 50: /* Ignore multiple parameters */
! 51: fail_unless(testconfig("unknown_one=1\n"
! 52: "unknown_two=2\n"
! 53: "unknown_three=3\n"));
! 54:
! 55: /* Test ignore parameters in a section */
! 56: fail_unless(testconfig("section mysection {\n"
! 57: "\tunknown_section_parameter=1\n"
! 58: "}"));
! 59:
! 60: /* Ignore unknown section, with unknown parameters */
! 61: fail_unless(testconfig("parameter=5\n"
! 62: "unknown section {\n"
! 63: "\tunknown_param=1\n"
! 64: "\tunknown_list={1,2,3,4}\n"
! 65: "}\n"
! 66: "section hej { section_parameter = \"gnejs\" }\n"
! 67: "parameter = \"ormbunke\""));
! 68:
! 69: return 0;
! 70: }
! 71:
! 72: /**
! 73: * Local Variables:
! 74: * indent-tabs-mode: t
! 75: * c-file-style: "linux"
! 76: * End:
! 77: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>