added cli tool
This commit is contained in:
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user