HDFS-10293. StripedFileTestUtil#readAll flaky. Contributed by Mingliang Liu.

This commit is contained in:
Jing Zhao 2016-04-15 10:53:40 -07:00
parent 89a838769f
commit 55e19b7f0c
1 changed files with 6 additions and 15 deletions

View File

@ -34,6 +34,7 @@
import org.apache.hadoop.hdfs.server.namenode.ErasureCodingPolicyManager;
import org.apache.hadoop.hdfs.util.StripedBlockUtil;
import org.apache.hadoop.hdfs.web.WebHdfsFileSystem.WebHdfsInputStream;
import org.apache.hadoop.io.IOUtils;
import org.apache.hadoop.io.erasurecode.CodecUtil;
import org.apache.hadoop.io.erasurecode.rawcoder.RawErasureEncoder;
import org.junit.Assert;
@ -85,16 +86,6 @@ static byte getByte(long pos) {
return (byte) (pos % mod + 1);
}
static int readAll(FSDataInputStream in, byte[] buf) throws IOException {
int readLen = 0;
int ret;
while ((ret = in.read(buf, readLen, buf.length - readLen)) >= 0 &&
readLen <= buf.length) {
readLen += ret;
}
return readLen;
}
static void verifyLength(FileSystem fs, Path srcPath, int fileLength)
throws IOException {
FileStatus status = fs.getFileStatus(srcPath);
@ -214,11 +205,11 @@ static void verifySeek(FileSystem fs, Path srcPath, int fileLength)
static void assertSeekAndRead(FSDataInputStream fsdis, int pos,
int writeBytes) throws IOException {
fsdis.seek(pos);
byte[] buf = new byte[writeBytes];
int readLen = StripedFileTestUtil.readAll(fsdis, buf);
assertEquals(readLen, writeBytes - pos);
for (int i = 0; i < readLen; i++) {
assertEquals("Byte at " + i + " should be the same", StripedFileTestUtil.getByte(pos + i), buf[i]);
byte[] buf = new byte[writeBytes - pos];
IOUtils.readFully(fsdis, buf, 0, buf.length);
for (int i = 0; i < buf.length; i++) {
assertEquals("Byte at " + i + " should be the same",
StripedFileTestUtil.getByte(pos + i), buf[i]);
}
}