1*8e33eff8Schristos #include "test/jemalloc_test.h" 2*8e33eff8Schristos 3*8e33eff8Schristos TEST_BEGIN(test_arena_slab_regind) { 4*8e33eff8Schristos szind_t binind; 5*8e33eff8Schristos 6*8e33eff8Schristos for (binind = 0; binind < NBINS; binind++) { 7*8e33eff8Schristos size_t regind; 8*8e33eff8Schristos extent_t slab; 9*8e33eff8Schristos const bin_info_t *bin_info = &bin_infos[binind]; 10*8e33eff8Schristos extent_init(&slab, NULL, mallocx(bin_info->slab_size, 11*8e33eff8Schristos MALLOCX_LG_ALIGN(LG_PAGE)), bin_info->slab_size, true, 12*8e33eff8Schristos binind, 0, extent_state_active, false, true, true); 13*8e33eff8Schristos assert_ptr_not_null(extent_addr_get(&slab), 14*8e33eff8Schristos "Unexpected malloc() failure"); 15*8e33eff8Schristos for (regind = 0; regind < bin_info->nregs; regind++) { 16*8e33eff8Schristos void *reg = (void *)((uintptr_t)extent_addr_get(&slab) + 17*8e33eff8Schristos (bin_info->reg_size * regind)); 18*8e33eff8Schristos assert_zu_eq(arena_slab_regind(&slab, binind, reg), 19*8e33eff8Schristos regind, 20*8e33eff8Schristos "Incorrect region index computed for size %zu", 21*8e33eff8Schristos bin_info->reg_size); 22*8e33eff8Schristos } 23*8e33eff8Schristos free(extent_addr_get(&slab)); 24*8e33eff8Schristos } 25*8e33eff8Schristos } 26*8e33eff8Schristos TEST_END 27*8e33eff8Schristos 28*8e33eff8Schristos int 29*8e33eff8Schristos main(void) { 30*8e33eff8Schristos return test( 31*8e33eff8Schristos test_arena_slab_regind); 32*8e33eff8Schristos } 33