Blame memkind-1.10.0/jemalloc/test/unit/prof_tctx.c

Packit Service 724aca
#include "test/jemalloc_test.h"
Packit Service 724aca
Packit Service 724aca
TEST_BEGIN(test_prof_realloc) {
Packit Service 724aca
	tsdn_t *tsdn;
Packit Service 724aca
	int flags;
Packit Service 724aca
	void *p, *q;
Packit Service 724aca
	prof_tctx_t *tctx_p, *tctx_q;
Packit Service 724aca
	uint64_t curobjs_0, curobjs_1, curobjs_2, curobjs_3;
Packit Service 724aca
Packit Service 724aca
	test_skip_if(!config_prof);
Packit Service 724aca
Packit Service 724aca
	tsdn = tsdn_fetch();
Packit Service 724aca
	flags = MALLOCX_TCACHE_NONE;
Packit Service 724aca
Packit Service 724aca
	prof_cnt_all(&curobjs_0, NULL, NULL, NULL);
Packit Service 724aca
	p = mallocx(1024, flags);
Packit Service 724aca
	assert_ptr_not_null(p, "Unexpected mallocx() failure");
Packit Service 724aca
	tctx_p = prof_tctx_get(tsdn, p, NULL);
Packit Service 724aca
	assert_ptr_ne(tctx_p, (prof_tctx_t *)(uintptr_t)1U,
Packit Service 724aca
	    "Expected valid tctx");
Packit Service 724aca
	prof_cnt_all(&curobjs_1, NULL, NULL, NULL);
Packit Service 724aca
	assert_u64_eq(curobjs_0 + 1, curobjs_1,
Packit Service 724aca
	    "Allocation should have increased sample size");
Packit Service 724aca
Packit Service 724aca
	q = rallocx(p, 2048, flags);
Packit Service 724aca
	assert_ptr_ne(p, q, "Expected move");
Packit Service 724aca
	assert_ptr_not_null(p, "Unexpected rmallocx() failure");
Packit Service 724aca
	tctx_q = prof_tctx_get(tsdn, q, NULL);
Packit Service 724aca
	assert_ptr_ne(tctx_q, (prof_tctx_t *)(uintptr_t)1U,
Packit Service 724aca
	    "Expected valid tctx");
Packit Service 724aca
	prof_cnt_all(&curobjs_2, NULL, NULL, NULL);
Packit Service 724aca
	assert_u64_eq(curobjs_1, curobjs_2,
Packit Service 724aca
	    "Reallocation should not have changed sample size");
Packit Service 724aca
Packit Service 724aca
	dallocx(q, flags);
Packit Service 724aca
	prof_cnt_all(&curobjs_3, NULL, NULL, NULL);
Packit Service 724aca
	assert_u64_eq(curobjs_0, curobjs_3,
Packit Service 724aca
	    "Sample size should have returned to base level");
Packit Service 724aca
}
Packit Service 724aca
TEST_END
Packit Service 724aca
Packit Service 724aca
int
Packit Service 724aca
main(void) {
Packit Service 724aca
	return test_no_reentrancy(
Packit Service 724aca
	    test_prof_realloc);
Packit Service 724aca
}