12345678910111213141516171819202122232425262728293031323334 |
- #include "test/jemalloc_test.h"
- static uint64_t
- deallocated() {
- if (!config_stats) {
- return 0;
- }
- uint64_t deallocated;
- size_t sz = sizeof(deallocated);
- expect_d_eq(mallctl("thread.deallocated", (void *)&deallocated, &sz,
- NULL, 0), 0, "Unexpected mallctl failure");
- return deallocated;
- }
- TEST_BEGIN(test_realloc_free) {
- void *ptr = mallocx(42, 0);
- expect_ptr_not_null(ptr, "Unexpected mallocx error");
- uint64_t deallocated_before = deallocated();
- ptr = realloc(ptr, 0);
- uint64_t deallocated_after = deallocated();
- expect_ptr_null(ptr, "Realloc didn't free");
- if (config_stats) {
- expect_u64_gt(deallocated_after, deallocated_before,
- "Realloc didn't free");
- }
- }
- TEST_END
- int
- main(void) {
- return test(
- test_realloc_free);
- }
|