You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by ap...@apache.org on 2013/04/24 04:03:01 UTC

svn commit: r1471227 - /hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java

Author: apurtell
Date: Wed Apr 24 02:03:01 2013
New Revision: 1471227

URL: http://svn.apache.org/r1471227
Log:
HBASE-7921. TestHFileBlock.testGzipCompression should ignore the block checksum

Modified:
    hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java

Modified: hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java?rev=1471227&r1=1471226&r2=1471227&view=diff
==============================================================================
--- hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java (original)
+++ hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/io/hfile/TestHFileBlock.java Wed Apr 24 02:03:01 2013
@@ -202,6 +202,7 @@ public class TestHFileBlock {
         HFile.DEFAULT_BYTES_PER_CHECKSUM);
     DataOutputStream dos = hbw.startWriting(blockType);
     writeTestBlockContents(dos);
+    dos.flush();
     byte[] headerAndData = hbw.getHeaderAndDataForTest();
     assertEquals(1000 * 4, hbw.getUncompressedSizeWithoutHeader());
     hbw.releaseCompressor();
@@ -244,14 +245,19 @@ public class TestHFileBlock {
             + "\\x00"  // XFL (extra flags)
             // OS (0 = FAT filesystems, 3 = Unix). However, this field
             // sometimes gets set to 0 on Linux and Mac, so we reset it to 3.
+            // This appears to be a difference caused by the availability
+            // (and use) of the native GZ codec.
             + "\\x03"
             + "\\xED\\xC3\\xC1\\x11\\x00 \\x08\\xC00DD\\xDD\\x7Fa"
             + "\\xD6\\xE8\\xA3\\xB9K\\x84`\\x96Q\\xD3\\xA8\\xDB\\xA8e\\xD4c"
             + "\\xD46\\xEA5\\xEA3\\xEA7\\xE7\\x00LI\\x5Cs\\xA0\\x0F\\x00\\x00"
-            + "\\xAB\\x85g\\x91"; //  4 byte checksum
+            + "\\x00\\x00\\x00\\x00"; //  4 byte checksum (ignored)
     final int correctGzipBlockLength = 95;
-    assertEquals(correctTestBlockStr, createTestBlockStr(GZ,
-        correctGzipBlockLength));
+    final String testBlockStr = createTestBlockStr(GZ, correctGzipBlockLength);
+    // We ignore the block checksum because createTestBlockStr can change the
+    // gzip header after the block is produced
+    assertEquals(correctTestBlockStr.substring(0, correctGzipBlockLength - 4),
+      testBlockStr.substring(0, correctGzipBlockLength - 4));
   }
 
   @Test