/** Test that after closing a RandomAccessBuffer we cannot read from it or write to it */ protected void innerTestClose(long sz) throws IOException { RandomAccessBuffer raf = construct(sz); raf.close(); byte[] buf = new byte[(int)Math.min(1024, sz)]; readWriteMustFail(raf, 0L, buf, 0, buf.length); raf.free(); }
private void innerTestSize(long sz) throws IOException { RandomAccessBuffer raf = construct(sz); assertEquals(raf.size(), sz); raf.close(); raf.free(); }
/** Create an array, fill it with random numbers, write it sequentially to the * RandomAccessBuffer, then read randomly and compare. */ protected void innerTestArray(int len, Random r, boolean readOnly) throws IOException { if(len == 0) return; byte[] buf = new byte[len]; r.nextBytes(buf); RandomAccessBuffer raf = construct(len); raf.pwrite(0L, buf, 0, buf.length); for(int i=0;i<100;i++) { int end = len == 1 ? 1 : r.nextInt(len)+1; int start = r.nextInt(end); checkArraySectionEqualsReadData(buf, raf, start, end, readOnly); } checkArraySectionEqualsReadData(buf, raf, 0, len, readOnly); if(len > 1) checkArraySectionEqualsReadData(buf, raf, 1, len-1, readOnly); raf.close(); raf.free(); }
raf.free();
/** Create an array, fill it with random numbers, write it sequentially to the * RandomAccessBuffer, then read randomly and compare. */ protected void innerTestArrayMigration(int len, Random r) throws IOException { if(len == 0) return; byte[] buf = new byte[len]; r.nextBytes(buf); RandomAccessBuffer raf = construct(len); TempRandomAccessBuffer t = (TempRandomAccessBuffer) raf; assertFalse(t.hasMigrated()); assertEquals(factory.getRamUsed(), len); t.migrateToDisk(); assertTrue(t.hasMigrated()); assertEquals(factory.getRamUsed(), 0); raf.pwrite(0L, buf, 0, buf.length); checkArrayInner(buf, raf, len, r); raf.close(); raf.free(); }
readWriteMustFail(raf, sz+buf.length, buf, 0, buf.length); raf.close(); raf.free();