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>