PoolArenaTest Class — netty Architecture
Architecture documentation for the PoolArenaTest class in PoolArenaTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD a309ea5f_39fd_34ca_b674_7a5f76e6b7eb["PoolArenaTest"] 4811e0d1_d4f3_128e_dd5f_e17069991d02["PoolArenaTest.java"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|defined in| 4811e0d1_d4f3_128e_dd5f_e17069991d02 53535c7e_c54a_4978_dcf5_82cf40a59525["testNormalizeCapacity()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| 53535c7e_c54a_4978_dcf5_82cf40a59525 6b688ebe_ae19_0d98_ef5f_190695bd7661["testNormalizeAlignedCapacity()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| 6b688ebe_ae19_0d98_ef5f_190695bd7661 e9ac076c_11da_4510_0ee9_f135a6d7fac8["testSize2SizeIdx()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| e9ac076c_11da_4510_0ee9_f135a6d7fac8 f992500a_9f1f_a3a3_8b3d_2cec6fe2cb18["testPages2PageIdx()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| f992500a_9f1f_a3a3_8b3d_2cec6fe2cb18 02daa357_abb7_27ca_d223_faf6c65901a9["testSizeIdx2size()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| 02daa357_abb7_27ca_d223_faf6c65901a9 34dea1e1_8f7b_a912_ff84_614c9e9a87af["testPageIdx2size()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| 34dea1e1_8f7b_a912_ff84_614c9e9a87af cb7e0c7a_35c8_94aa_5e90_29a3f2ac7c1f["testAllocationCounter()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| cb7e0c7a_35c8_94aa_5e90_29a3f2ac7c1f bcde9f30_8a41_83f5_9605_c2b8533fd9eb["testDirectArenaMemoryCopy()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| bcde9f30_8a41_83f5_9605_c2b8533fd9eb e2f1cf7b_9cd4_5cac_c4f4_d7df028b810f["unwrapIfNeeded()"] a309ea5f_39fd_34ca_b674_7a5f76e6b7eb -->|method| e2f1cf7b_9cd4_5cac_c4f4_d7df028b810f
Relationship Graph
Source Code
buffer/src/test/java/io/netty/buffer/PoolArenaTest.java lines 27–176
public class PoolArenaTest {
private static final int PAGE_SIZE = 8192;
private static final int PAGE_SHIFTS = 11;
//chunkSize = pageSize * (2 ^ pageShifts)
private static final int CHUNK_SIZE = 16777216;
@Test
public void testNormalizeCapacity() {
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 0);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
int[] reqCapacities = {0, 15, 510, 1024, 1023, 1025};
int[] expectedResult = {16, 16, 512, 1024, 1024, 1280};
for (int i = 0; i < reqCapacities.length; i ++) {
assertEquals(expectedResult[i],
arena.sizeClass.sizeIdx2size(arena.sizeClass.size2SizeIdx(reqCapacities[i])));
}
}
@Test
public void testNormalizeAlignedCapacity() {
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 64);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
int[] reqCapacities = {0, 15, 510, 1024, 1023, 1025};
int[] expectedResult = {64, 64, 512, 1024, 1024, 1280};
for (int i = 0; i < reqCapacities.length; i ++) {
assertEquals(expectedResult[i],
arena.sizeClass.sizeIdx2size(arena.sizeClass.size2SizeIdx(reqCapacities[i])));
}
}
@Test
public void testSize2SizeIdx() {
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 0);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
for (int sz = 0; sz <= CHUNK_SIZE; sz++) {
int sizeIdx = arena.sizeClass.size2SizeIdx(sz);
assertTrue(sz <= arena.sizeClass.sizeIdx2size(sizeIdx));
if (sizeIdx > 0) {
assertTrue(sz > arena.sizeClass.sizeIdx2size(sizeIdx - 1));
}
}
}
@Test
public void testPages2PageIdx() {
int pageShifts = PAGE_SHIFTS;
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 0);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
int maxPages = CHUNK_SIZE >> pageShifts;
for (int pages = 1; pages <= maxPages; pages++) {
int pageIdxFloor = arena.sizeClass.pages2pageIdxFloor(pages);
assertTrue(pages << pageShifts >= arena.sizeClass.pageIdx2size(pageIdxFloor));
if (pageIdxFloor > 0 && pages < maxPages) {
assertTrue(pages << pageShifts < arena.sizeClass.pageIdx2size(pageIdxFloor + 1));
}
int pageIdxCeiling = arena.sizeClass.pages2pageIdx(pages);
assertTrue(pages << pageShifts <= arena.sizeClass.pageIdx2size(pageIdxCeiling));
if (pageIdxCeiling > 0) {
assertTrue(pages << pageShifts > arena.sizeClass.pageIdx2size(pageIdxCeiling - 1));
}
}
}
@Test
public void testSizeIdx2size() {
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 0);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
for (int i = 0; i < arena.sizeClass.nSizes; i++) {
assertEquals(arena.sizeClass.sizeIdx2sizeCompute(i), arena.sizeClass.sizeIdx2size(i));
}
}
@Test
public void testPageIdx2size() {
SizeClasses sc = new SizeClasses(PAGE_SIZE, PAGE_SHIFTS, CHUNK_SIZE, 0);
PoolArena<ByteBuffer> arena = new PoolArena.DirectArena(null, sc);
for (int i = 0; i < arena.sizeClass.nPSizes; i++) {
Source
Frequently Asked Questions
What is the PoolArenaTest class?
PoolArenaTest is a class in the netty codebase, defined in buffer/src/test/java/io/netty/buffer/PoolArenaTest.java.
Where is PoolArenaTest defined?
PoolArenaTest is defined in buffer/src/test/java/io/netty/buffer/PoolArenaTest.java at line 27.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free