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
This commit is contained in:
Chris Nauroth 2014-04-16 00:05:45 +00:00
parent 44b6261bfa
commit 9887d7f250
2 changed files with 7 additions and 23 deletions

View File

@ -349,6 +349,9 @@ Release 2.5.0 - UNRELEASED
HDFS-6243. HA NameNode transition to active or shutdown may leave lingering HDFS-6243. HA NameNode transition to active or shutdown may leave lingering
image transfer thread. (cnauroth) 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 Release 2.4.1 - UNRELEASED
INCOMPATIBLE CHANGES INCOMPATIBLE CHANGES

View File

@ -21,11 +21,13 @@
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.nio.ByteBuffer; import java.nio.ByteBuffer;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.hadoop.hdfs.DFSTestUtil; import org.apache.hadoop.hdfs.DFSTestUtil;
@ -166,7 +168,8 @@ public void testStored() throws IOException {
assertTrue("Edits " + editsStored + " should have all op codes", assertTrue("Edits " + editsStored + " should have all op codes",
hasAllOpCodes(editsStored)); hasAllOpCodes(editsStored));
assertTrue("Reference XML edits and parsed to XML should be same", 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( assertTrue(
"Reference edits and reparsed (bin to XML to bin) should be same", "Reference edits and reparsed (bin to XML to bin) should be same",
filesEqualIgnoreTrailingZeros(editsStored, editsStoredReparsed)); filesEqualIgnoreTrailingZeros(editsStored, editsStoredReparsed));
@ -270,26 +273,4 @@ private boolean filesEqualIgnoreTrailingZeros(String filenameSmall,
return true; 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);
}
} }