159113bcc94b9fc7549611afb99ca99cad1a7f196aravind#include "test/jemalloc_test.h" 259113bcc94b9fc7549611afb99ca99cad1a7f196aravind 359113bcc94b9fc7549611afb99ca99cad1a7f196aravindchunk_alloc_t *old_alloc; 412141150fdbda57651a53ae2fe0edaea4891d814Jason Evanschunk_dalloc_t *old_dalloc; 559113bcc94b9fc7549611afb99ca99cad1a7f196aravind 659113bcc94b9fc7549611afb99ca99cad1a7f196aravindbool 712141150fdbda57651a53ae2fe0edaea4891d814Jason Evanschunk_dalloc(void *chunk, size_t size, unsigned arena_ind) 859113bcc94b9fc7549611afb99ca99cad1a7f196aravind{ 959113bcc94b9fc7549611afb99ca99cad1a7f196aravind 1012141150fdbda57651a53ae2fe0edaea4891d814Jason Evans return (old_dalloc(chunk, size, arena_ind)); 1159113bcc94b9fc7549611afb99ca99cad1a7f196aravind} 1259113bcc94b9fc7549611afb99ca99cad1a7f196aravind 1359113bcc94b9fc7549611afb99ca99cad1a7f196aravindvoid * 1459113bcc94b9fc7549611afb99ca99cad1a7f196aravindchunk_alloc(size_t size, size_t alignment, bool *zero, unsigned arena_ind) 1559113bcc94b9fc7549611afb99ca99cad1a7f196aravind{ 1659113bcc94b9fc7549611afb99ca99cad1a7f196aravind 1759113bcc94b9fc7549611afb99ca99cad1a7f196aravind return (old_alloc(size, alignment, zero, arena_ind)); 1859113bcc94b9fc7549611afb99ca99cad1a7f196aravind} 1959113bcc94b9fc7549611afb99ca99cad1a7f196aravind 2059113bcc94b9fc7549611afb99ca99cad1a7f196aravindTEST_BEGIN(test_chunk) 2159113bcc94b9fc7549611afb99ca99cad1a7f196aravind{ 2259113bcc94b9fc7549611afb99ca99cad1a7f196aravind void *p; 2359113bcc94b9fc7549611afb99ca99cad1a7f196aravind chunk_alloc_t *new_alloc; 2412141150fdbda57651a53ae2fe0edaea4891d814Jason Evans chunk_dalloc_t *new_dalloc; 2559113bcc94b9fc7549611afb99ca99cad1a7f196aravind size_t old_size, new_size; 2659113bcc94b9fc7549611afb99ca99cad1a7f196aravind 2759113bcc94b9fc7549611afb99ca99cad1a7f196aravind new_alloc = chunk_alloc; 2812141150fdbda57651a53ae2fe0edaea4891d814Jason Evans new_dalloc = chunk_dalloc; 2959113bcc94b9fc7549611afb99ca99cad1a7f196aravind old_size = sizeof(chunk_alloc_t *); 3059113bcc94b9fc7549611afb99ca99cad1a7f196aravind new_size = sizeof(chunk_alloc_t *); 3159113bcc94b9fc7549611afb99ca99cad1a7f196aravind 3259113bcc94b9fc7549611afb99ca99cad1a7f196aravind assert_d_eq(mallctl("arena.0.chunk.alloc", &old_alloc, 3359113bcc94b9fc7549611afb99ca99cad1a7f196aravind &old_size, &new_alloc, new_size), 0, 3459113bcc94b9fc7549611afb99ca99cad1a7f196aravind "Unexpected alloc error"); 3559113bcc94b9fc7549611afb99ca99cad1a7f196aravind assert_ptr_ne(old_alloc, new_alloc, 3659113bcc94b9fc7549611afb99ca99cad1a7f196aravind "Unexpected alloc error"); 3712141150fdbda57651a53ae2fe0edaea4891d814Jason Evans assert_d_eq(mallctl("arena.0.chunk.dalloc", &old_dalloc, &old_size, 3812141150fdbda57651a53ae2fe0edaea4891d814Jason Evans &new_dalloc, new_size), 0, "Unexpected dalloc error"); 3912141150fdbda57651a53ae2fe0edaea4891d814Jason Evans assert_ptr_ne(old_dalloc, new_dalloc, "Unexpected dalloc error"); 4059113bcc94b9fc7549611afb99ca99cad1a7f196aravind 4159113bcc94b9fc7549611afb99ca99cad1a7f196aravind p = mallocx(42, 0); 4259113bcc94b9fc7549611afb99ca99cad1a7f196aravind assert_ptr_ne(p, NULL, "Unexpected alloc error"); 4359113bcc94b9fc7549611afb99ca99cad1a7f196aravind free(p); 4459113bcc94b9fc7549611afb99ca99cad1a7f196aravind 4559113bcc94b9fc7549611afb99ca99cad1a7f196aravind assert_d_eq(mallctl("arena.0.chunk.alloc", NULL, 4659113bcc94b9fc7549611afb99ca99cad1a7f196aravind NULL, &old_alloc, old_size), 0, 4759113bcc94b9fc7549611afb99ca99cad1a7f196aravind "Unexpected alloc error"); 4812141150fdbda57651a53ae2fe0edaea4891d814Jason Evans assert_d_eq(mallctl("arena.0.chunk.dalloc", NULL, NULL, &old_dalloc, 4912141150fdbda57651a53ae2fe0edaea4891d814Jason Evans old_size), 0, "Unexpected dalloc error"); 5059113bcc94b9fc7549611afb99ca99cad1a7f196aravind} 5159113bcc94b9fc7549611afb99ca99cad1a7f196aravindTEST_END 5259113bcc94b9fc7549611afb99ca99cad1a7f196aravind 5359113bcc94b9fc7549611afb99ca99cad1a7f196aravindint 5459113bcc94b9fc7549611afb99ca99cad1a7f196aravindmain(void) 5559113bcc94b9fc7549611afb99ca99cad1a7f196aravind{ 5659113bcc94b9fc7549611afb99ca99cad1a7f196aravind 5759113bcc94b9fc7549611afb99ca99cad1a7f196aravind return (test(test_chunk)); 5859113bcc94b9fc7549611afb99ca99cad1a7f196aravind} 59