diff options
Diffstat (limited to 'harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java')
-rw-r--r-- | harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java b/harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java deleted file mode 100644 index 308db21..0000000 --- a/harmony-tests/src/test/java/org/apache/harmony/nio/tests/java/nio/MappedByteBufferTest.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.harmony.nio.tests.java.nio; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.RandomAccessFile; -import java.nio.BufferUnderflowException; -import java.nio.ByteBuffer; -import java.nio.IntBuffer; -import java.nio.MappedByteBuffer; -import java.nio.channels.FileChannel; -import java.nio.channels.NonWritableChannelException; -import java.nio.channels.FileChannel.MapMode; - -import junit.framework.TestCase; - -public class MappedByteBufferTest extends TestCase { - - File tmpFile, emptyFile; - - /** - * A regression test for failing to correctly set capacity of underlying - * wrapped buffer from a mapped byte buffer. - */ - public void testasIntBuffer() throws IOException { - // Map file - FileInputStream fis = new FileInputStream(tmpFile); - FileChannel fc = fis.getChannel(); - MappedByteBuffer mmb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc - .size()); - int len = mmb.capacity(); - assertEquals("Got wrong number of bytes", 46, len); //$NON-NLS-1$ - - // Read in our 26 bytes - for (int i = 0; i < 26; i++) { - byte b = mmb.get(); - assertEquals("Got wrong byte value", (byte) 'A' + i, b); //$NON-NLS-1$ - } - - // Now convert to an IntBuffer to read our ints - IntBuffer ibuffer = mmb.asIntBuffer(); - for (int i = 0; i < 5; i++) { - int val = ibuffer.get(); - assertEquals("Got wrong int value", i + 1, val); //$NON-NLS-1$ - } - fc.close(); - } - - /** - * Regression for HARMONY-6315 - FileChannel.map throws IOException - * when called with size 0 - * - * @throws IOException - */ - public void testEmptyBuffer() throws IOException { - // Map empty file - FileInputStream fis = new FileInputStream(emptyFile); - FileChannel fc = fis.getChannel(); - MappedByteBuffer mmb = fc.map(FileChannel.MapMode.READ_ONLY, 0, fc.size()); - - // check non-null - assertNotNull("MappedByteBuffer created from empty file should not be null", - mmb); - - // check capacity is 0 - int len = mmb.capacity(); - assertEquals("MappedByteBuffer created from empty file should have 0 capacity", - 0, len); - - assertFalse("MappedByteBuffer from empty file shouldn't be backed by an array ", - mmb.hasArray()); - - try - { - byte b = mmb.get(); - fail("Calling MappedByteBuffer.get() on empty buffer should throw a BufferUnderflowException"); - } - catch (BufferUnderflowException e) - { - // expected behaviour - } - - // test expected exceptions thrown - try - { - mmb = fc.map(FileChannel.MapMode.READ_WRITE, 0, fc.size()); - fail("Expected NonWritableChannelException to be thrown"); - } - catch (NonWritableChannelException e) - { - // expected behaviour - } - try - { - mmb = fc.map(FileChannel.MapMode.PRIVATE, 0, fc.size()); - fail("Expected NonWritableChannelException to be thrown"); - } - catch (NonWritableChannelException e) - { - // expected behaviour - } - fc.close(); - } - - /** - * @tests {@link java.nio.MappedByteBuffer#force()} - */ - public void test_force() throws IOException { - // buffer was not mapped in read/write mode - FileInputStream fileInputStream = new FileInputStream(tmpFile); - FileChannel fileChannelRead = fileInputStream.getChannel(); - MappedByteBuffer mmbRead = fileChannelRead.map(MapMode.READ_ONLY, 0, - fileChannelRead.size()); - - mmbRead.force(); - - FileInputStream inputStream = new FileInputStream(tmpFile); - FileChannel fileChannelR = inputStream.getChannel(); - MappedByteBuffer resultRead = fileChannelR.map(MapMode.READ_ONLY, 0, - fileChannelR.size()); - - //If this buffer was not mapped in read/write mode, then invoking this method has no effect. - assertEquals( - "Invoking force() should have no effect when this buffer was not mapped in read/write mode", - mmbRead, resultRead); - - // Buffer was mapped in read/write mode - RandomAccessFile randomFile = new RandomAccessFile(tmpFile, "rw"); - FileChannel fileChannelReadWrite = randomFile.getChannel(); - MappedByteBuffer mmbReadWrite = fileChannelReadWrite.map( - FileChannel.MapMode.READ_WRITE, 0, fileChannelReadWrite.size()); - - mmbReadWrite.put((byte) 'o'); - mmbReadWrite.force(); - - RandomAccessFile random = new RandomAccessFile(tmpFile, "rw"); - FileChannel fileChannelRW = random.getChannel(); - MappedByteBuffer resultReadWrite = fileChannelRW.map( - FileChannel.MapMode.READ_WRITE, 0, fileChannelRW.size()); - - // Invoking force() will change the buffer - assertFalse(mmbReadWrite.equals(resultReadWrite)); - - fileChannelRead.close(); - fileChannelR.close(); - fileChannelReadWrite.close(); - fileChannelRW.close(); - } - - /** - * @tests {@link java.nio.MappedByteBuffer#load()} - */ - public void test_load() throws IOException { - FileInputStream fileInputStream = new FileInputStream(tmpFile); - FileChannel fileChannelRead = fileInputStream.getChannel(); - MappedByteBuffer mmbRead = fileChannelRead.map(MapMode.READ_ONLY, 0, - fileChannelRead.size()); - - assertEquals(mmbRead, mmbRead.load()); - - RandomAccessFile randomFile = new RandomAccessFile(tmpFile, "rw"); - FileChannel fileChannelReadWrite = randomFile.getChannel(); - MappedByteBuffer mmbReadWrite = fileChannelReadWrite.map( - FileChannel.MapMode.READ_WRITE, 0, fileChannelReadWrite.size()); - - assertEquals(mmbReadWrite, mmbReadWrite.load()); - - fileChannelRead.close(); - fileChannelReadWrite.close(); - } - - protected void setUp() throws IOException { - // Create temp file with 26 bytes and 5 ints - tmpFile = File.createTempFile("harmony", "test"); //$NON-NLS-1$//$NON-NLS-2$ - tmpFile.deleteOnExit(); - FileOutputStream fileOutputStream = new FileOutputStream(tmpFile); - FileChannel fileChannel = fileOutputStream.getChannel(); - ByteBuffer byteBuffer = ByteBuffer.allocateDirect(26 + 20); - for (int i = 0; i < 26; i++) { - byteBuffer.put((byte) ('A' + i)); - } - for (int i = 0; i < 5; i++) { - byteBuffer.putInt(i + 1); - } - byteBuffer.rewind(); - fileChannel.write(byteBuffer); - fileChannel.close(); - fileOutputStream.close(); - - emptyFile = File.createTempFile("harmony", "test"); //$NON-NLS-1$//$NON-NLS-2$ - emptyFile.deleteOnExit(); - } - - public void test_position() throws IOException { - File tmp = File.createTempFile("hmy", "tmp"); - tmp.deleteOnExit(); - RandomAccessFile f = new RandomAccessFile(tmp, "rw"); - FileChannel ch = f.getChannel(); - MappedByteBuffer mbb = ch.map(MapMode.READ_WRITE, 0L, 100L); - ch.close(); - - mbb.putInt(1, 1); - mbb.position(50); - mbb.putInt(50); - - mbb.flip(); - mbb.get(); - assertEquals(1, mbb.getInt()); - - mbb.position(50); - assertEquals(50, mbb.getInt()); - } -} |