// Tests that lock block returns the correct path @Test public void lockBlockTest() throws Exception { final int blockSize = (int) WORKER_CAPACITY_BYTES / 2; CreateFileOptions options = CreateFileOptions.defaults() .setBlockSizeBytes(blockSize) .setWriteType(WriteType.MUST_CACHE); FileOutStream out = mFileSystem.createFile(new AlluxioURI("/testFile"), options); URIStatus file = mFileSystem.getStatus(new AlluxioURI("/testFile")); final long blockId = BlockId.createBlockId(BlockId.getContainerId(file.getFileId()), 0); out.write(BufferUtils.getIncreasingByteArray(blockSize)); out.close(); String localPath = mBlockWorkerServiceHandler.lockBlock(blockId, SESSION_ID).getBlockPath(); // The local path should exist Assert.assertNotNull(localPath); UnderFileSystem ufs = UnderFileSystem.get(localPath, mMasterConfiguration); byte[] data = new byte[blockSize]; int bytesRead = ufs.open(localPath).read(data); // The data in the local file should equal the data we wrote earlier Assert.assertEquals(blockSize, bytesRead); Assert.assertTrue(BufferUtils.equalIncreasingByteArray(bytesRead, data)); mBlockWorkerServiceHandler.unlockBlock(blockId, SESSION_ID); }
/** Tests that a file can be created and validates the data written to it. */ @Test public void createOpen() throws IOException { String testFile = PathUtils.concatPath(mUnderfsAddress, "testFile"); createTestBytesFile(testFile); byte[] buf = new byte[TEST_BYTES.length]; int bytesRead = mUfs.open(testFile).read(buf); Assert.assertTrue(bytesRead == TEST_BYTES.length); Assert.assertTrue(Arrays.equals(buf, TEST_BYTES)); }