run-talloc_set.c 755 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include <ccan/talloc/talloc.c>
  2. #include <ccan/tap/tap.h>
  3. #include <assert.h>
  4. int main(void)
  5. {
  6. char *c;
  7. int *i;
  8. plan_tests(12);
  9. /* Set C to a valid pointer, with correct parent. */
  10. talloc_set(&c, NULL);
  11. ok1(c >= (char *)(intptr_t)getpagesize());
  12. ok1(talloc_parent(c) == NULL);
  13. /* Free it, should blatt c. */
  14. talloc_free(c);
  15. ok1(c);
  16. ok1(c < (char *)(intptr_t)getpagesize());
  17. /* Same test, indirect. */
  18. talloc_set(&i, NULL);
  19. talloc_set(&c, i);
  20. ok1(c >= (char *)(intptr_t)getpagesize());
  21. ok1(i >= (int *)(intptr_t)getpagesize());
  22. ok1(talloc_parent(i) == NULL);
  23. ok1(talloc_parent(c) == i);
  24. talloc_free(i);
  25. ok1(c);
  26. ok1(c < (char *)(intptr_t)getpagesize());
  27. ok1(i);
  28. ok1(i < (int *)(intptr_t)getpagesize());
  29. return exit_status();
  30. }