/** Tests that reading a file consisting of more than one block from the underfs works */ @Test public void readMultiBlockFile() throws IOException, TachyonException { String uniqPath = PathUtils.uniqPath(); int blockSizeByte = 10; int numBlocks = 10; FileOutStream os = mTfs.getOutStream(new TachyonURI(uniqPath), mWriteUnderStore); for (int i = 0; i < numBlocks; i++) { for (int j = 0; j < blockSizeByte; j++) { os.write((byte) (i * blockSizeByte + j)); } } os.close(); TachyonFile f = mTfs.open(new TachyonURI(uniqPath)); FileInStream is = mTfs.getInStream(f, mReadCache); for (int i = 0; i < blockSizeByte * numBlocks; i++) { Assert.assertEquals((byte) i, is.read()); } is.close(); Assert.assertTrue(mTfs.getInfo(f).getInMemoryPercentage() == 100); }
@Override public void cancel() throws IOException { mCanceled = true; close(); }