< prev index next >

test/jdk/java/foreign/TestSegments.java

Print this page
M TestSegments.java

*** 41,52 **** import java.util.List; import java.util.Spliterator; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.LongFunction; import java.util.stream.Stream; ! import static org.testng.Assert.*; public class TestSegments { @Test(dataProvider = "badSizeAndAlignments", expectedExceptions = IllegalArgumentException.class) --- 41,53 ---- import java.util.List; import java.util.Spliterator; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.function.LongFunction; + import java.util.function.Supplier; import java.util.stream.Stream; ! import static jdk.incubator.foreign.MemorySegment.*; import static org.testng.Assert.*; public class TestSegments { @Test(dataProvider = "badSizeAndAlignments", expectedExceptions = IllegalArgumentException.class)
*** 142,151 **** --- 143,179 ---- start++; } } } + static final int ALL_ACCESS_MODES = READ | WRITE | CLOSE | ACQUIRE | HANDOFF; + + @DataProvider(name = "segmentFactories") + public Object[][] segmentFactories() { + List<Supplier<MemorySegment>> l = List.of( + () -> MemorySegment.ofArray(new byte[1]), + () -> MemorySegment.ofArray(new char[1]), + () -> MemorySegment.ofArray(new double[1]), + () -> MemorySegment.ofArray(new float[1]), + () -> MemorySegment.ofArray(new int[1]), + () -> MemorySegment.ofArray(new long[1]), + () -> MemorySegment.ofArray(new short[1]), + () -> MemorySegment.ofArray(new int[1]), + () -> MemorySegment.allocateNative(1), + () -> MemorySegment.allocateNative(1, 2), + () -> MemorySegment.allocateNative(MemoryLayout.ofValueBits(8, ByteOrder.LITTLE_ENDIAN)) + ); + return l.stream().map(s -> new Object[] { s }).toArray(Object[][]::new); + } + @Test(dataProvider = "segmentFactories") + public void testAccessModesOfFactories(Supplier<MemorySegment> memorySegmentSupplier) { + try (MemorySegment segment = memorySegmentSupplier.get()) { + assertTrue(segment.hasAccessModes(ALL_ACCESS_MODES)); + assertEquals(segment.accessModes(), ALL_ACCESS_MODES); + } + } + @Test(dataProvider = "accessModes") public void testAccessModes(int accessModes) { int[] arr = new int[1]; for (AccessActions action : AccessActions.values()) { MemorySegment segment = MemorySegment.ofArray(arr);
< prev index next >