@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); }
private void saveIndex(Index index) throws IOException { IndexData indexData = index.toIndexData(); byte[] data = indexData.writeIndexData(); Container container = new Container(index.getCompression(), -1); // index data revision is always -1 container.compress(data, null); byte[] compressedData = container.data; DataFileWriteResult res = this.data.write(index255.getIndexFileId(), index.getId(), compressedData); index255.write(new IndexEntry(index255, index.getId(), res.sector, res.compressedLength)); Crc32 crc = new Crc32(); crc.update(compressedData, 0, compressedData.length); index.setCrc(crc.getHash()); }
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; }
byte[] decryptedData = decrypt(encryptedData, encryptedData.length, keys); byte[] decryptedData = decrypt(encryptedData, encryptedData.length, keys); byte[] decryptedData = decrypt(encryptedData, encryptedData.length, keys); Container container = new Container(compression, revision); container.data = data; container.crc = crc32.getHash();
compressedData = encrypt(compressedData, compressedData.length, keys);
Container container = new Container(archive.getCompression(), -1); container.compress(data, null); byte[] compressedData = container.data; storage.saveArchive(archive, compressedData); container = new Container(archive.getCompression(), 42); container.compress(data, null); compressedData = container.data; archive2.setRevision(42);
Container container = Container.decompress(encryptedData, keys); if (container == null)
@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); }
Container container = new Container(archive.getCompression(), -1); container.compress(data, null); byte[] compressedData = container.data; storage.saveArchive(archive, compressedData); container = new Container(archive.getCompression(), 42); container.compress(data, null); compressedData = container.data; archive2.setRevision(42);
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; }
@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 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); }
@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); } }