You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by co...@apache.org on 2009/11/16 23:26:43 UTC

svn commit: r881014 - in /hadoop/hdfs/trunk: CHANGES.txt src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java

Author: cos
Date: Mon Nov 16 22:26:43 2009
New Revision: 881014

URL: http://svn.apache.org/viewvc?rev=881014&view=rev
Log:
HDFS-741. TestHFlush test doesn't seek() past previously written part of the file. Contributed by Konstantin Boudnik

Modified:
    hadoop/hdfs/trunk/CHANGES.txt
    hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java

Modified: hadoop/hdfs/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=881014&r1=881013&r2=881014&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Mon Nov 16 22:26:43 2009
@@ -58,6 +58,9 @@
     
     HDFS-774. Intermittent race condition in TestFiPipelines (cos)
 
+    HDFS-741. TestHFlush test doesn't seek() past previously written part of
+    the file (cos, szetszwo)
+
 Release 0.21.0 - Unreleased
 
   INCOMPATIBLE CHANGES

Modified: hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java
URL: http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java?rev=881014&r1=881013&r2=881014&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java (original)
+++ hadoop/hdfs/trunk/src/test/hdfs/org/apache/hadoop/hdfs/TestHFlush.java Mon Nov 16 22:26:43 2009
@@ -18,18 +18,17 @@
 package org.apache.hadoop.hdfs;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FSDataInputStream;
 import org.apache.hadoop.fs.FSDataOutputStream;
 import org.apache.hadoop.fs.Path;
-import org.apache.hadoop.fs.FSDataInputStream;
 import static org.junit.Assert.assertEquals;
-import org.apache.hadoop.hdfs.HdfsConfiguration;
-import org.apache.hadoop.hdfs.DFSConfigKeys;
+import static org.junit.Assert.assertTrue;
 import org.junit.Test;
 
 import java.io.IOException;
 
 /** Class contains a set of tests to verify the correctness of 
- * newly introduced {@link DFSClient#hflush()} method */
+ * newly introduced {@link FSDataOutputStream#hflush()} method */
 public class TestHFlush {
   private final String fName = "hflushtest.dat";
   
@@ -115,9 +114,12 @@
         System.arraycopy(fileContent, tenth * i, expected, 0, tenth);
         // Open the same file for read. Need to create new reader after every write operation(!)
         is = fileSystem.open(path);
-        is.read(toRead, tenth * i, tenth);
+        is.seek(tenth * i);
+        int readBytes = is.read(toRead, 0, tenth);
+        System.out.println("Has read " + readBytes);
+        assertTrue("Should've get more bytes", (readBytes > 0) && (readBytes <= tenth));
         is.close();
-        checkData(toRead, 0, expected, "Partial verification");
+        checkData(toRead, 0, readBytes, expected, "Partial verification");
       }
       System.out.println("Writing " + (tenth * SECTIONS) + " to " + (tenth * SECTIONS + rounding) + " section to file " + fileName);
       stm.write(fileContent, tenth * SECTIONS, rounding);
@@ -125,10 +127,6 @@
 
       assertEquals("File size doesn't match ", AppendTestUtil.FILE_SIZE, fileSystem.getFileStatus(path).getLen());
       AppendTestUtil.checkFullFile(fileSystem, path, fileContent.length, fileContent, "hflush()");
-
-    } catch (IOException ioe) {
-      ioe.printStackTrace();
-      throw ioe;
     } catch (Exception e) {
       e.printStackTrace();
     } finally {
@@ -136,9 +134,9 @@
       cluster.shutdown();
     }
   }
-  static void checkData(final byte[] actual, int from,
-                                final byte[] expected, String message) {
-    for (int idx = 0; idx < actual.length; idx++) {
+  static void checkData(final byte[] actual, int from, int len,
+                        final byte[] expected, String message) {
+    for (int idx = 0; idx < len; idx++) {
       assertEquals(message+" byte "+(from+idx)+" differs. expected "+
                    expected[from+idx]+" actual "+actual[idx],
                    expected[from+idx], actual[idx]);