HDFS-10805. Reduce runtime for append test. Contributed by Gergely Novak.

This commit is contained in:
Arpit Agarwal 2016-09-14 09:31:17 -07:00
parent 53a12fa721
commit 2a8f55a0cf

View File

@ -17,6 +17,7 @@
*/ */
package org.apache.hadoop.hdfs; package org.apache.hadoop.hdfs;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@ -238,7 +239,8 @@ private static void checkData(final byte[] actual, int from,
} }
public static void testAppend(FileSystem fs, Path p) throws IOException { public static void testAppend(FileSystem fs, Path p) throws IOException {
final byte[] bytes = new byte[1000]; final int size = 1000;
final byte[] bytes = randomBytes(seed, size);
{ //create file { //create file
final FSDataOutputStream out = fs.create(p, (short)1); final FSDataOutputStream out = fs.create(p, (short)1);
@ -247,12 +249,22 @@ public static void testAppend(FileSystem fs, Path p) throws IOException {
assertEquals(bytes.length, fs.getFileStatus(p).getLen()); assertEquals(bytes.length, fs.getFileStatus(p).getLen());
} }
for(int i = 2; i < 500; i++) { final int appends = 50;
for (int i = 2; i < appends; i++) {
//append //append
final FSDataOutputStream out = fs.append(p); final FSDataOutputStream out = fs.append(p);
out.write(bytes); out.write(bytes);
out.close(); out.close();
assertEquals(i*bytes.length, fs.getFileStatus(p).getLen()); assertEquals(i * bytes.length, fs.getFileStatus(p).getLen());
} }
// Check the appended content
final FSDataInputStream in = fs.open(p);
for (int i = 0; i < appends - 1; i++) {
byte[] read = new byte[size];
in.read(i * bytes.length, read, 0, size);
assertArrayEquals(bytes, read);
}
in.close();
} }
} }