Author: wavey
Date: 2008-04-11 21:57:10 +0000 (Fri, 11 Apr 2008)
New Revision: 19211
Modified:
trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
Log:
added test of decompress by byte array (rather than bucket). Not currently used
but probably so in the future (according to mr toad)
Modified: trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
===================================================================
--- trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
2008-04-11 21:44:40 UTC (rev 19210)
+++ trunk/freenet/test/freenet/support/compress/GzipCompressorTest.java
2008-04-11 21:57:10 UTC (rev 19211)
@@ -52,7 +52,10 @@
// check GZIP is the first compressor
assertEquals(gzipCompressor, compressorZero);
+ }
+ public void testCompress() {
+
// do gzip compression
byte[] compressedData =
doCompress(UNCOMPRESSED_DATA_1.getBytes());
@@ -63,15 +66,48 @@
for (int i = 0; i < compressedData.length; i++) {
assertEquals(COMPRESSED_DATA_1[i], compressedData[i]);
}
+ }
- // do gzip uncompression
- byte[] uncompressedData = doUncompress(compressedData);
+ public void testBucketDecompress() {
+ byte[] compressedData = COMPRESSED_DATA_1;
+
+ // do gzip decompression with buckets
+ byte[] uncompressedData = doBucketDecompress(compressedData);
+
// is the (round-tripped) uncompressed string the same as the
original?
String uncompressedString = new String(uncompressedData);
assertEquals(uncompressedString, UNCOMPRESSED_DATA_1);
}
+ public void testByteArrayDecompress() {
+
+ // build 5k array
+ byte[] originalUncompressedData = new byte[5 * 1024];
+ for(int i = 0; i < originalUncompressedData.length; i++) {
+ originalUncompressedData[i] = 1;
+ }
+
+ byte[] compressedData = doCompress(originalUncompressedData);
+ byte[] outUncompressedData = new byte[5 * 1024];
+
+ int writtenBytes = 0;
+
+ try {
+ writtenBytes =
Compressor.GZIP.decompress(compressedData, 0, compressedData.length,
outUncompressedData);
+ } catch (CompressionOutputSizeException e) {
+ fail("unexpected exception thrown : " + e.getMessage());
+ }
+
+ assertEquals(writtenBytes, originalUncompressedData.length);
+ assertEquals(originalUncompressedData.length,
outUncompressedData.length);
+
+ // check each byte is exactly as expected
+ for (int i = 0; i < outUncompressedData.length; i++) {
+ assertEquals(originalUncompressedData[i],
outUncompressedData[i]);
+ }
+ }
+
public void testCompressException() {
byte[] uncompressedData = UNCOMPRESSED_DATA_1.getBytes();
@@ -109,7 +145,7 @@
}
}
- private byte[] doUncompress(byte[] compressedData) {
+ private byte[] doBucketDecompress(byte[] compressedData) {
Bucket inBucket = new ArrayBucket(compressedData);
BucketFactory factory = new ArrayBucketFactory();