1*8e33eff8Schristos #include "test/jemalloc_test.h" 2*8e33eff8Schristos 3*8e33eff8Schristos #define MAXALIGN (((size_t)1) << 22) 4*8e33eff8Schristos #define NITER 3 5*8e33eff8Schristos 6*8e33eff8Schristos TEST_BEGIN(test_basic) { 7*8e33eff8Schristos void *ptr = mallocx(64, 0); 8*8e33eff8Schristos sdallocx(ptr, 64, 0); 9*8e33eff8Schristos } 10*8e33eff8Schristos TEST_END 11*8e33eff8Schristos 12*8e33eff8Schristos TEST_BEGIN(test_alignment_and_size) { 13*8e33eff8Schristos size_t nsz, sz, alignment, total; 14*8e33eff8Schristos unsigned i; 15*8e33eff8Schristos void *ps[NITER]; 16*8e33eff8Schristos 17*8e33eff8Schristos for (i = 0; i < NITER; i++) { 18*8e33eff8Schristos ps[i] = NULL; 19*8e33eff8Schristos } 20*8e33eff8Schristos 21*8e33eff8Schristos for (alignment = 8; 22*8e33eff8Schristos alignment <= MAXALIGN; 23*8e33eff8Schristos alignment <<= 1) { 24*8e33eff8Schristos total = 0; 25*8e33eff8Schristos for (sz = 1; 26*8e33eff8Schristos sz < 3 * alignment && sz < (1U << 31); 27*8e33eff8Schristos sz += (alignment >> (LG_SIZEOF_PTR-1)) - 1) { 28*8e33eff8Schristos for (i = 0; i < NITER; i++) { 29*8e33eff8Schristos nsz = nallocx(sz, MALLOCX_ALIGN(alignment) | 30*8e33eff8Schristos MALLOCX_ZERO); 31*8e33eff8Schristos ps[i] = mallocx(sz, MALLOCX_ALIGN(alignment) | 32*8e33eff8Schristos MALLOCX_ZERO); 33*8e33eff8Schristos total += nsz; 34*8e33eff8Schristos if (total >= (MAXALIGN << 1)) { 35*8e33eff8Schristos break; 36*8e33eff8Schristos } 37*8e33eff8Schristos } 38*8e33eff8Schristos for (i = 0; i < NITER; i++) { 39*8e33eff8Schristos if (ps[i] != NULL) { 40*8e33eff8Schristos sdallocx(ps[i], sz, 41*8e33eff8Schristos MALLOCX_ALIGN(alignment)); 42*8e33eff8Schristos ps[i] = NULL; 43*8e33eff8Schristos } 44*8e33eff8Schristos } 45*8e33eff8Schristos } 46*8e33eff8Schristos } 47*8e33eff8Schristos } 48*8e33eff8Schristos TEST_END 49*8e33eff8Schristos 50*8e33eff8Schristos int 51*8e33eff8Schristos main(void) { 52*8e33eff8Schristos return test_no_reentrancy( 53*8e33eff8Schristos test_basic, 54*8e33eff8Schristos test_alignment_and_size); 55*8e33eff8Schristos } 56