< prev index next >

test/jdk/java/foreign/TestByteBuffer.java

Print this page
M TestByteBuffer.java

*** 76,86 **** import jdk.internal.foreign.MemoryAddressImpl; import jdk.internal.foreign.NativeMemorySegmentImpl; import org.testng.SkipException; import org.testng.annotations.*; import sun.nio.ch.DirectBuffer; ! import static org.testng.Assert.*; public class TestByteBuffer { static Path tempPath; --- 76,86 ---- import jdk.internal.foreign.MemoryAddressImpl; import jdk.internal.foreign.NativeMemorySegmentImpl; import org.testng.SkipException; import org.testng.annotations.*; import sun.nio.ch.DirectBuffer; ! import static jdk.incubator.foreign.MemorySegment.*; import static org.testng.Assert.*; public class TestByteBuffer { static Path tempPath;
*** 234,243 **** --- 234,258 ---- checkTuples(base, mbb); }); } } + static final int ALL_ACCESS_MODES = READ | WRITE | CLOSE | ACQUIRE | HANDOFF; + + @Test + public void testDefaultAccessModesMappedSegment() throws Throwable { + try (MappedMemorySegment segment = MemorySegment.mapFromPath(tempPath, 8, FileChannel.MapMode.READ_WRITE)) { + assertTrue(segment.hasAccessModes(ALL_ACCESS_MODES)); + assertEquals(segment.accessModes(), ALL_ACCESS_MODES); + } + + try (MappedMemorySegment segment = MemorySegment.mapFromPath(tempPath, 8, FileChannel.MapMode.READ_ONLY)) { + assertTrue(segment.hasAccessModes(ALL_ACCESS_MODES & ~WRITE)); + assertEquals(segment.accessModes(), ALL_ACCESS_MODES& ~WRITE); + } + } + @Test public void testMappedSegment() throws Throwable { File f = new File("test2.out"); f.createNewFile(); f.deleteOnExit();
*** 444,453 **** --- 459,483 ---- MemoryAddress.copy(nativeArray.baseAddress(), heapArray.baseAddress(), bytes); checker.accept(heapArray.baseAddress()); } } + @Test + public void testDefaultAccessModesOfBuffer() { + ByteBuffer rwBuffer = ByteBuffer.wrap(new byte[4]); + try (MemorySegment segment = MemorySegment.ofByteBuffer(rwBuffer)) { + assertTrue(segment.hasAccessModes(ALL_ACCESS_MODES)); + assertEquals(segment.accessModes(), ALL_ACCESS_MODES); + } + + ByteBuffer roBuffer = rwBuffer.asReadOnlyBuffer(); + try (MemorySegment segment = MemorySegment.ofByteBuffer(roBuffer)) { + assertTrue(segment.hasAccessModes(ALL_ACCESS_MODES & ~WRITE)); + assertEquals(segment.accessModes(), ALL_ACCESS_MODES & ~WRITE); + } + } + @Test(dataProvider="bufferSources") public void testBufferToSegment(ByteBuffer bb, Predicate<MemorySegment> segmentChecker) { MemorySegment segment = MemorySegment.ofByteBuffer(bb); assertEquals(segment.hasAccessModes(MemorySegment.WRITE), !bb.isReadOnly()); assertTrue(segmentChecker.test(segment));
< prev index next >