Browse Source

HDFS-5409. TestOfflineEditsViewer#testStored fails on Windows due to CRLF line endings in editsStored.xml from git checkout. Contributed by Chris Nauroth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1587759 13f79535-47bb-0310-9956-ffa450edef68
Chris Nauroth 11 years ago
parent
commit
9887d7f250

+ 3 - 0
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt

@@ -349,6 +349,9 @@ Release 2.5.0 - UNRELEASED
     HDFS-6243. HA NameNode transition to active or shutdown may leave lingering
     image transfer thread. (cnauroth)
 
+    HDFS-5409. TestOfflineEditsViewer#testStored fails on Windows due to CRLF
+    line endings in editsStored.xml from git checkout. (cnauroth)
+
 Release 2.4.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

+ 4 - 23
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/tools/offlineEditsViewer/TestOfflineEditsViewer.java

@@ -21,11 +21,13 @@ package org.apache.hadoop.hdfs.tools.offlineEditsViewer;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.channels.FileChannel;
 
+import org.apache.commons.io.FileUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.hdfs.DFSTestUtil;
@@ -166,7 +168,8 @@ public class TestOfflineEditsViewer {
     assertTrue("Edits " + editsStored + " should have all op codes",
         hasAllOpCodes(editsStored));
     assertTrue("Reference XML edits and parsed to XML should be same",
-        filesEqual(editsStoredXml, editsStoredParsedXml));
+        FileUtils.contentEqualsIgnoreEOL(new File(editsStoredXml),
+          new File(editsStoredParsedXml), "UTF-8"));
     assertTrue(
         "Reference edits and reparsed (bin to XML to bin) should be same",
         filesEqualIgnoreTrailingZeros(editsStored, editsStoredReparsed));
@@ -270,26 +273,4 @@ public class TestOfflineEditsViewer {
 
     return true;
   }
-
-  /**
-   * Compare two files, throw exception is they are not same
-   *
-   * @param filename1 first file to compare
-   * @param filename2 second file to compare
-   */
-  private boolean filesEqual(String filename1,
-    String filename2) throws IOException {
-
-    // make file 1 the small one
-    ByteBuffer bb1 = ByteBuffer.wrap(DFSTestUtil.loadFile(filename1));
-    ByteBuffer bb2 = ByteBuffer.wrap(DFSTestUtil.loadFile(filename2));
-
-    // compare from 0 to capacity
-    bb1.position(0);
-    bb1.limit(bb1.capacity());
-    bb2.position(0);
-    bb2.limit(bb2.capacity());
-
-    return bb1.equals(bb2);
-  }
 }