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>