Annotation of embedaddon/confuse/tests/suite_ptr.c, revision 1.1

1.1     ! misho       1: #include "check_confuse.h"
        !             2: #include <string.h>
        !             3: 
        !             4: static int parse_ptr(cfg_t *cfg, cfg_opt_t *opt,
        !             5:                     const char *value, void *result)
        !             6: {
        !             7:        int *ptr;
        !             8: 
        !             9:        if (!strcmp(value, "nil")) {
        !            10:                *(void **)result = NULL;
        !            11:                return 0;
        !            12:        }
        !            13: 
        !            14:        ptr = malloc(sizeof(int));
        !            15:        if (!ptr)
        !            16:                return -1;
        !            17: 
        !            18:        *ptr = atoi(value);
        !            19:        *(void **)result = ptr;
        !            20:        return 0;
        !            21: }
        !            22: 
        !            23: int main(void)
        !            24: {
        !            25:        cfg_opt_t opts[] = {
        !            26:                CFG_PTR_CB("ptr", 0, CFGF_NONE, parse_ptr, free),
        !            27:                CFG_PTR_CB("ptr-nil", "nil", CFGF_NONE, parse_ptr, free),
        !            28:                CFG_PTR_CB("ptr-one", "1", CFGF_NONE, parse_ptr, free),
        !            29:                CFG_END()
        !            30:        };
        !            31: 
        !            32:        cfg_t *cfg = cfg_init(opts, 0);
        !            33:        fail_unless(cfg_parse_buf(cfg, "") == CFG_SUCCESS);
        !            34:        fail_unless(cfg_size(cfg, "ptr") == 0);
        !            35:        fail_unless(cfg_getptr(cfg, "ptr") == 0);
        !            36:        fail_unless(cfg_size(cfg, "ptr-nil") == 1);
        !            37:        fail_unless(cfg_getptr(cfg, "ptr-nil") == 0);
        !            38:        fail_unless(cfg_size(cfg, "ptr-one") == 1);
        !            39:        fail_unless(cfg_getptr(cfg, "ptr-one") != 0);
        !            40:        cfg_free(cfg);
        !            41: 
        !            42:        return 0;
        !            43: }
        !            44: 
        !            45: /**
        !            46:  * Local Variables:
        !            47:  *  indent-tabs-mode: t
        !            48:  *  c-file-style: "linux"
        !            49:  * End:
        !            50:  */

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