added cli tool

This commit is contained in:
2020-04-27 19:41:06 +01:00
parent 0479cf0560
commit 9f48d6ee3a
9 changed files with 256 additions and 11 deletions

View File

@@ -87,7 +87,7 @@ public class ZstdOutputStream extends OutputStream {
@Override
public void write(byte[] arr, int off, int len) {
var written = 0;
int written = 0;
while (written < len - off) {
int writeSize = Math.min(len, input.src.capacity() - input.src.position());
input.src.put(arr, off, writeSize);

View File

@@ -2,6 +2,7 @@ package net.woggioni.jzstd;
import lombok.SneakyThrows;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
@@ -10,9 +11,9 @@ import org.junit.jupiter.params.provider.ArgumentsSource;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.security.DigestInputStream;
import java.security.DigestOutputStream;
import java.security.MessageDigest;
import java.util.stream.Stream;
@@ -38,9 +39,9 @@ public class BasicTest {
MessageDigest md5 = MessageDigest.getInstance("MD5");
ByteArrayInputStream compressedStream;
try (InputStream is = new BufferedInputStream(testStream)) {
try (InputStream is = new DigestInputStream(new BufferedInputStream(testStream), md5)) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (OutputStream os = new DigestOutputStream(ZstdOutputStream.from(baos), md5)) {
try (OutputStream os = ZstdOutputStream.from(baos)) {
byte[] buffer = new byte[0x1000];
while (true) {
int read = is.read(buffer);
@@ -54,12 +55,29 @@ public class BasicTest {
md5.reset();
try (InputStream is = new DigestInputStream(
ZstdInputStream.from(compressedStream), md5)) {
byte [] buffer = new byte[0x10000];
byte [] buffer = new byte[0x100000];
while(true) {
int read = is.read(buffer);
if(read < 0) break;
}
}
Assertions.assertArrayEquals(originalDigest, md5.digest());
byte[] roundTripDigest = md5.digest();
Assertions.assertArrayEquals(originalDigest, roundTripDigest);
}
@SneakyThrows
@Test
public void test2() {
Path inputFile = Paths.get("/tmp/Richard_Dawkins_The_Selfish_Gene.pdf");
try(InputStream is = Files.newInputStream(inputFile)) {
try(OutputStream os = ZstdOutputStream.from(Files.newOutputStream(Paths.get("/tmp/Richard_Dawkins_The_Selfish_Gene.pdf.zst")))) {
byte[] buffer = new byte[0x10000];
while(true) {
int read = is.read(buffer);
if(read < 0) break;
os.write(buffer, 0, read);
}
}
}
}
}