#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); }