HDFS-10805. Reduce runtime for append test. Contributed by Gergely Novak.
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/AppendTestUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/AppendTestUtil.java
index de4da5f..268bdf9 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/AppendTestUtil.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/AppendTestUtil.java
@@ -17,6 +17,7 @@
*/
package org.apache.hadoop.hdfs;
+import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@@ -238,7 +239,8 @@
}
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
final FSDataOutputStream out = fs.create(p, (short)1);
@@ -247,12 +249,22 @@
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
final FSDataOutputStream out = fs.append(p);
out.write(bytes);
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();
}
}
\ No newline at end of file