2
0

xallocx.c 1010 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "test/jemalloc_test.h"
  2. TEST_BEGIN(test_same_size)
  3. {
  4. void *p;
  5. size_t sz, tsz;
  6. p = mallocx(42, 0);
  7. assert_ptr_not_null(p, "Unexpected mallocx() error");
  8. sz = sallocx(p, 0);
  9. tsz = xallocx(p, sz, 0, 0);
  10. assert_zu_eq(tsz, sz, "Unexpected size change: %zu --> %zu", sz, tsz);
  11. dallocx(p, 0);
  12. }
  13. TEST_END
  14. TEST_BEGIN(test_extra_no_move)
  15. {
  16. void *p;
  17. size_t sz, tsz;
  18. p = mallocx(42, 0);
  19. assert_ptr_not_null(p, "Unexpected mallocx() error");
  20. sz = sallocx(p, 0);
  21. tsz = xallocx(p, sz, sz-42, 0);
  22. assert_zu_eq(tsz, sz, "Unexpected size change: %zu --> %zu", sz, tsz);
  23. dallocx(p, 0);
  24. }
  25. TEST_END
  26. TEST_BEGIN(test_no_move_fail)
  27. {
  28. void *p;
  29. size_t sz, tsz;
  30. p = mallocx(42, 0);
  31. assert_ptr_not_null(p, "Unexpected mallocx() error");
  32. sz = sallocx(p, 0);
  33. tsz = xallocx(p, sz + 5, 0, 0);
  34. assert_zu_eq(tsz, sz, "Unexpected size change: %zu --> %zu", sz, tsz);
  35. dallocx(p, 0);
  36. }
  37. TEST_END
  38. int
  39. main(void)
  40. {
  41. return (test(
  42. test_same_size,
  43. test_extra_no_move,
  44. test_no_move_fail));
  45. }