< prev index next >

test/jdk/java/nio/channels/FileChannel/ScatteringRead.java

Print this page
rev 59105 : imported patch corelibs

*** 41,56 **** public static void main(String[] args) throws Exception { test1(); // for bug 4452020 test2(); // for bug 4629048 System.gc(); - - // Test 3 proves that the system is capable of reading - // more than MAX_INT bytes in one shot. But it is unsuitable - // for automated testing because oftentimes less bytes are - // read for various reasons, and this is allowed by the spec. - // test3(); // for bug 4638365 } private static void test1() throws Exception { ByteBuffer dstBuffers[] = new ByteBuffer[NUM_BUFFERS]; for (int i=0; i<NUM_BUFFERS; i++) --- 41,50 ----
*** 103,152 **** long bytesRead = fc.read(dstBuffers); if (dstBuffers[1].limit() != 10) throw new Exception("Scattering read changed buf limit."); fis.close(); } - - private static void test3() throws Exception { - // Only works on 64 bit Solaris - String osName = System.getProperty("os.name"); - if (!osName.startsWith("SunOS")) - return; - String dataModel = System.getProperty("sun.arch.data.model"); - if (!dataModel.startsWith("64")) - return; - - ByteBuffer dstBuffers[] = new ByteBuffer[NUM_BUFFERS]; - File f = File.createTempFile("test3", null); - f.deleteOnExit(); - prepTest3File(f, (long)BIG_BUFFER_CAP); - RandomAccessFile raf = new RandomAccessFile(f, "rw"); - FileChannel fc = raf.getChannel(); - MappedByteBuffer mbb = fc.map(FileChannel.MapMode.READ_WRITE, 0, - BIG_BUFFER_CAP); - for (int i=0; i<NUM_BUFFERS; i++) { - dstBuffers[i] = mbb; - } - fc.close(); - raf.close(); - - // Source must be large - FileInputStream fis = new FileInputStream("/dev/zero"); - fc = fis.getChannel(); - - long bytesRead = fc.read(dstBuffers); - if (bytesRead <= Integer.MAX_VALUE) - throw new RuntimeException("Test 3 failed "+bytesRead+" < "+Integer.MAX_VALUE); - - fc.close(); - fis.close(); - } - - static void prepTest3File(File blah, long testSize) throws Exception { - RandomAccessFile raf = new RandomAccessFile(blah, "rw"); - FileChannel fc = raf.getChannel(); - fc.write(ByteBuffer.wrap("Use the source!".getBytes()), testSize - 40); - fc.close(); - raf.close(); - } - } --- 97,102 ----
< prev index next >