public void decompress(int[] keys) throws IOException { Container res = Container.decompress(compressedData, keys); contents = res.data; revision = res.revision; crc = res.crc; compression = res.compression; }
Container container = Container.decompress(encryptedData, keys); if (container == null)
@Test public void testCompress() throws IOException { int[] keys = new int[] { 4, 8, 15, 16 }; Random random = new Random(42L); byte[] data = new byte[1024]; random.nextBytes(data); Container container = new Container(GZ, -1); container.compress(data, keys); byte[] compressedData = container.data; container = Container.decompress(compressedData, keys); assertArrayEquals(data, container.data); }
@Test public void test1() throws IOException { File file = folder.newFile(); DataFile df = new DataFile(file); Container container = new Container(CompressionType.NONE, 0); container.compress("test".getBytes(), null); byte[] compressedData = container.data; DataFileWriteResult res = df.write(42, 3, compressedData); compressedData = df.read(42, 3, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, null); byte[] buf = res2.data; String str = new String(buf); Assert.assertEquals("test", str); }
@Test public void testGZipCompression() throws IOException { DataFile df = new DataFile(folder.newFile()); Container container = new Container(CompressionType.GZ, 0); container.compress("test".getBytes(), null); byte[] compressedData = container.data; DataFileWriteResult res = df.write(41, 4, compressedData); compressedData = df.read(41, 4, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, null); byte[] buf = res2.data; String str = new String(buf); Assert.assertEquals("test", str); }
@Test public void testBZip2Compression() throws IOException { DataFile df = new DataFile(folder.newFile()); Container container = new Container(CompressionType.BZ2, 5); container.compress("test".getBytes(), null); byte[] compressedData = container.data; DataFileWriteResult res = df.write(41, 4, compressedData); compressedData = df.read(41, 4, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, null); byte[] buf = res2.data; String str = new String(buf); Assert.assertEquals("test", str); }
@Test public void testEnc() throws IOException { File file = folder.newFile(); int[] keys = new int[] { 4, 8, 15, 16 }; DataFile df = new DataFile(file); Container container = new Container(CompressionType.NONE, 42); container.compress("testtesttesttest1".getBytes(), keys); byte[] compressedData = container.data; DataFileWriteResult res = df.write(42, 3, compressedData); compressedData = df.read(42, 3, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, keys); byte[] buf = res2.data; String str = new String(buf); Assert.assertEquals("testtesttesttest1", str); Assert.assertEquals(42, res2.revision); }
@Test public void testEncGz() throws IOException { File file = folder.newFile(); int[] keys = new int[] { 4, 8, 15, 16 }; DataFile df = new DataFile(file); Container container = new Container(CompressionType.GZ, 42); container.compress("testtesttesttest1".getBytes(), keys); byte[] compressedData = container.data; DataFileWriteResult res = df.write(42, 3, compressedData); compressedData = df.read(42, 3, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, keys); byte[] buf = res2.data; String str = new String(buf); Assert.assertEquals("testtesttesttest1", str); Assert.assertEquals(42, res2.revision); } }
@Test public void test2() throws IOException { byte[] b = new byte[1024]; for (int i = 0; i < 1024; ++i) { b[i] = (byte) i; } File file = folder.newFile(); DataFile df = new DataFile(file); Container container = new Container(CompressionType.BZ2, 42); container.compress(b, null); byte[] compressedData = container.data; DataFileWriteResult res = df.write(42, 0x1FFFF, compressedData); compressedData = df.read(42, 0x1FFFF, res.sector, res.compressedLength); Container res2 = Container.decompress(compressedData, null); byte[] buf = res2.data; Assert.assertArrayEquals(b, buf); }
private void loadIndex(Index index) throws IOException { logger.trace("Loading index {}", index.getId()); byte[] indexData = readIndex(index.getId()); Container res = Container.decompress(indexData, null); byte[] data = res.data; IndexData id = new IndexData(); id.load(data); index.setProtocol(id.getProtocol()); index.setRevision(id.getRevision()); index.setNamed(id.isNamed()); for (ArchiveData ad : id.getArchives()) { Archive archive = index.addArchive(ad.getId()); archive.setNameHash(ad.getNameHash()); archive.setCrc(ad.getCrc()); archive.setRevision(ad.getRevision()); archive.setFileData(ad.getFiles()); assert ad.getFiles().length > 0; } index.setCrc(res.crc); index.setCompression(res.compression); assert res.revision == -1; }