Merge branch 'dev' into benchfn
This commit is contained in:
+1
-1
@@ -33,7 +33,7 @@ endif
|
||||
CFLAGS ?= -O3
|
||||
CFLAGS += -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
|
||||
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
|
||||
-Wstrict-prototypes -Wundef -Wformat-security \
|
||||
-Wstrict-prototypes -Wundef \
|
||||
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
|
||||
-Wredundant-decls -Wmissing-prototypes
|
||||
CFLAGS += $(DEBUGFLAGS) $(MOREFLAGS)
|
||||
|
||||
@@ -938,7 +938,9 @@ static size_t writeSequences(U32* seed, frame_t* frame, seqStore_t* seqStorePtr,
|
||||
FSE_CState_t stateOffsetBits;
|
||||
FSE_CState_t stateLitLength;
|
||||
|
||||
CHECK_E(BIT_initCStream(&blockStream, op, oend-op), dstSize_tooSmall); /* not enough space remaining */
|
||||
RETURN_ERROR_IF(
|
||||
ERR_isError(BIT_initCStream(&blockStream, op, oend-op)),
|
||||
dstSize_tooSmall, "not enough space remaining");
|
||||
|
||||
/* first symbols */
|
||||
FSE_initCState2(&stateMatchLength, CTable_MatchLength, mlCodeTable[nbSeq-1]);
|
||||
|
||||
+15
-5
@@ -27,16 +27,16 @@ PRGDIR = ../../programs
|
||||
|
||||
FUZZ_CPPFLAGS := -I$(ZSTDDIR) -I$(ZSTDDIR)/common -I$(ZSTDDIR)/compress \
|
||||
-I$(ZSTDDIR)/dictBuilder -I$(ZSTDDIR)/deprecated -I$(PRGDIR) \
|
||||
$(CPPFLAGS)
|
||||
-DZSTD_MULTITHREAD $(CPPFLAGS)
|
||||
FUZZ_EXTRA_FLAGS := -Wall -Wextra -Wcast-qual -Wcast-align -Wshadow \
|
||||
-Wstrict-aliasing=1 -Wswitch-enum -Wdeclaration-after-statement \
|
||||
-Wstrict-prototypes -Wundef -Wformat-security \
|
||||
-Wstrict-prototypes -Wundef \
|
||||
-Wvla -Wformat=2 -Winit-self -Wfloat-equal -Wwrite-strings \
|
||||
-Wredundant-decls \
|
||||
-g -fno-omit-frame-pointer
|
||||
FUZZ_CFLAGS := $(FUZZ_EXTRA_FLAGS) $(CFLAGS)
|
||||
FUZZ_CXXFLAGS := $(FUZZ_EXTRA_FLAGS) -std=c++11 $(CXXFLAGS)
|
||||
FUZZ_LDFLAGS := $(LDFLAGS)
|
||||
FUZZ_LDFLAGS := -pthread $(LDFLAGS)
|
||||
FUZZ_ARFLAGS := $(ARFLAGS)
|
||||
FUZZ_TARGET_FLAGS = $(FUZZ_CPPFLAGS) $(FUZZ_CXXFLAGS) $(FUZZ_LDFLAGS)
|
||||
|
||||
@@ -46,11 +46,13 @@ FUZZ_SRC := $(PRGDIR)/util.c zstd_helpers.c
|
||||
ZSTDCOMMON_SRC := $(ZSTDDIR)/common/*.c
|
||||
ZSTDCOMP_SRC := $(ZSTDDIR)/compress/*.c
|
||||
ZSTDDECOMP_SRC := $(ZSTDDIR)/decompress/*.c
|
||||
ZSTDDICT_SRC := $(ZSTDDIR)/dictBuilder/*.c
|
||||
FUZZ_SRC := \
|
||||
$(FUZZ_SRC) \
|
||||
$(ZSTDDECOMP_SRC) \
|
||||
$(ZSTDCOMMON_SRC) \
|
||||
$(ZSTDCOMP_SRC)
|
||||
$(ZSTDCOMP_SRC) \
|
||||
$(ZSTDDICT_SRC)
|
||||
|
||||
FUZZ_OBJ := $(patsubst %.c,%.o, $(wildcard $(FUZZ_SRC)))
|
||||
|
||||
@@ -65,7 +67,9 @@ FUZZ_TARGETS := \
|
||||
block_round_trip \
|
||||
simple_decompress \
|
||||
stream_decompress \
|
||||
block_decompress
|
||||
block_decompress \
|
||||
dictionary_round_trip \
|
||||
dictionary_decompress
|
||||
|
||||
all: $(FUZZ_TARGETS)
|
||||
|
||||
@@ -90,6 +94,12 @@ stream_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) stream_decompress.o
|
||||
block_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) block_decompress.o
|
||||
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) block_decompress.o $(LIB_FUZZING_ENGINE) -o $@
|
||||
|
||||
dictionary_round_trip: $(FUZZ_HEADERS) $(FUZZ_OBJ) dictionary_round_trip.o
|
||||
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) dictionary_round_trip.o $(LIB_FUZZING_ENGINE) -o $@
|
||||
|
||||
dictionary_decompress: $(FUZZ_HEADERS) $(FUZZ_OBJ) dictionary_decompress.o
|
||||
$(CXX) $(FUZZ_TARGET_FLAGS) $(FUZZ_OBJ) dictionary_decompress.o $(LIB_FUZZING_ENGINE) -o $@
|
||||
|
||||
libregression.a: $(FUZZ_HEADERS) $(PRGDIR)/util.h $(PRGDIR)/util.c regression_driver.o
|
||||
$(AR) $(FUZZ_ARFLAGS) $@ regression_driver.o
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
* Copyright (c) 2016-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under both the BSD-style license (found in the
|
||||
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
||||
* in the COPYING file in the root directory of this source tree).
|
||||
*/
|
||||
|
||||
/**
|
||||
* This fuzz target attempts to decompress the fuzzed data with the dictionary
|
||||
* decompression function to ensure the decompressor never crashes. It does not
|
||||
* fuzz the dictionary.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "fuzz_helpers.h"
|
||||
#include "zstd_helpers.h"
|
||||
|
||||
static ZSTD_DCtx *dctx = NULL;
|
||||
static void* rBuf = NULL;
|
||||
static size_t bufSize = 0;
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
{
|
||||
FUZZ_dict_t dict;
|
||||
size_t neededBufSize;
|
||||
|
||||
uint32_t seed = FUZZ_seed(&src, &size);
|
||||
neededBufSize = MAX(20 * size, (size_t)256 << 10);
|
||||
|
||||
/* Allocate all buffers and contexts if not already allocated */
|
||||
if (neededBufSize > bufSize) {
|
||||
free(rBuf);
|
||||
rBuf = malloc(neededBufSize);
|
||||
bufSize = neededBufSize;
|
||||
FUZZ_ASSERT(rBuf);
|
||||
}
|
||||
if (!dctx) {
|
||||
dctx = ZSTD_createDCtx();
|
||||
FUZZ_ASSERT(dctx);
|
||||
}
|
||||
dict = FUZZ_train(src, size, &seed);
|
||||
if (FUZZ_rand32(&seed, 0, 1) == 0) {
|
||||
ZSTD_decompress_usingDict(dctx,
|
||||
rBuf, neededBufSize,
|
||||
src, size,
|
||||
dict.buff, dict.size);
|
||||
} else {
|
||||
FUZZ_ZASSERT(ZSTD_DCtx_loadDictionary_advanced(
|
||||
dctx, dict.buff, dict.size,
|
||||
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
|
||||
(ZSTD_dictContentType_e)FUZZ_rand32(&seed, 0, 2)));
|
||||
ZSTD_decompressDCtx(dctx, rBuf, neededBufSize, src, size);
|
||||
}
|
||||
|
||||
free(dict.buff);
|
||||
#ifndef STATEFUL_FUZZING
|
||||
ZSTD_freeDCtx(dctx); dctx = NULL;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (c) 2016-present, Facebook, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This source code is licensed under both the BSD-style license (found in the
|
||||
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
|
||||
* in the COPYING file in the root directory of this source tree).
|
||||
*/
|
||||
|
||||
/**
|
||||
* This fuzz target performs a zstd round-trip test (compress & decompress) with
|
||||
* a dictionary, compares the result with the original, and calls abort() on
|
||||
* corruption.
|
||||
*/
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "fuzz_helpers.h"
|
||||
#include "zstd_helpers.h"
|
||||
|
||||
static const int kMaxClevel = 19;
|
||||
|
||||
static ZSTD_CCtx *cctx = NULL;
|
||||
static ZSTD_DCtx *dctx = NULL;
|
||||
static uint32_t seed;
|
||||
|
||||
static size_t roundTripTest(void *result, size_t resultCapacity,
|
||||
void *compressed, size_t compressedCapacity,
|
||||
const void *src, size_t srcSize)
|
||||
{
|
||||
ZSTD_dictContentType_e dictContentType = ZSTD_dct_auto;
|
||||
FUZZ_dict_t dict = FUZZ_train(src, srcSize, &seed);
|
||||
size_t cSize;
|
||||
if ((FUZZ_rand(&seed) & 15) == 0) {
|
||||
int const cLevel = FUZZ_rand(&seed) % kMaxClevel;
|
||||
|
||||
cSize = ZSTD_compress_usingDict(cctx,
|
||||
compressed, compressedCapacity,
|
||||
src, srcSize,
|
||||
dict.buff, dict.size,
|
||||
cLevel);
|
||||
} else {
|
||||
dictContentType = FUZZ_rand32(&seed, 0, 2);
|
||||
FUZZ_setRandomParameters(cctx, srcSize, &seed);
|
||||
/* Disable checksum so we can use sizes smaller than compress bound. */
|
||||
FUZZ_ZASSERT(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, 0));
|
||||
FUZZ_ZASSERT(ZSTD_CCtx_loadDictionary_advanced(
|
||||
cctx, dict.buff, dict.size,
|
||||
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
|
||||
dictContentType));
|
||||
cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
|
||||
}
|
||||
FUZZ_ZASSERT(cSize);
|
||||
FUZZ_ZASSERT(ZSTD_DCtx_loadDictionary_advanced(
|
||||
dctx, dict.buff, dict.size,
|
||||
(ZSTD_dictLoadMethod_e)FUZZ_rand32(&seed, 0, 1),
|
||||
dictContentType));
|
||||
{
|
||||
size_t const ret = ZSTD_decompressDCtx(
|
||||
dctx, result, resultCapacity, compressed, cSize);
|
||||
free(dict.buff);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
{
|
||||
size_t const rBufSize = size;
|
||||
void* rBuf = malloc(rBufSize);
|
||||
size_t cBufSize = ZSTD_compressBound(size);
|
||||
void* cBuf;
|
||||
|
||||
seed = FUZZ_seed(&src, &size);
|
||||
/* Half of the time fuzz with a 1 byte smaller output size.
|
||||
* This will still succeed because we force the checksum to be disabled,
|
||||
* giving us 4 bytes of overhead.
|
||||
*/
|
||||
cBufSize -= FUZZ_rand32(&seed, 0, 1);
|
||||
cBuf = malloc(cBufSize);
|
||||
|
||||
if (!cctx) {
|
||||
cctx = ZSTD_createCCtx();
|
||||
FUZZ_ASSERT(cctx);
|
||||
}
|
||||
if (!dctx) {
|
||||
dctx = ZSTD_createDCtx();
|
||||
FUZZ_ASSERT(dctx);
|
||||
}
|
||||
|
||||
{
|
||||
size_t const result =
|
||||
roundTripTest(rBuf, rBufSize, cBuf, cBufSize, src, size);
|
||||
FUZZ_ZASSERT(result);
|
||||
FUZZ_ASSERT_MSG(result == size, "Incorrect regenerated size");
|
||||
FUZZ_ASSERT_MSG(!memcmp(src, rBuf, size), "Corruption!");
|
||||
}
|
||||
free(rBuf);
|
||||
free(cBuf);
|
||||
#ifndef STATEFUL_FUZZING
|
||||
ZSTD_freeCCtx(cctx); cctx = NULL;
|
||||
ZSTD_freeDCtx(dctx); dctx = NULL;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
+19
-3
@@ -34,6 +34,8 @@ TARGETS = [
|
||||
'simple_decompress',
|
||||
'stream_decompress',
|
||||
'block_decompress',
|
||||
'dictionary_round_trip',
|
||||
'dictionary_decompress',
|
||||
]
|
||||
ALL_TARGETS = TARGETS + ['all']
|
||||
FUZZ_RNG_SEED_SIZE = 4
|
||||
@@ -192,11 +194,21 @@ def build_parser(args):
|
||||
default=LIB_FUZZING_ENGINE,
|
||||
help=('The fuzzing engine to use e.g. /path/to/libFuzzer.a '
|
||||
"(default: $LIB_FUZZING_ENGINE='{})".format(LIB_FUZZING_ENGINE)))
|
||||
parser.add_argument(
|
||||
|
||||
fuzz_group = parser.add_mutually_exclusive_group()
|
||||
fuzz_group.add_argument(
|
||||
'--enable-coverage',
|
||||
dest='coverage',
|
||||
action='store_true',
|
||||
help='Enable coverage instrumentation (-fsanitize-coverage)')
|
||||
fuzz_group.add_argument(
|
||||
'--enable-fuzzer',
|
||||
dest='fuzzer',
|
||||
action='store_true',
|
||||
help=('Enable clang fuzzer (-fsanitize=fuzzer). When enabled '
|
||||
'LIB_FUZZING_ENGINE is ignored')
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
'--enable-asan', dest='asan', action='store_true', help='Enable UBSAN')
|
||||
parser.add_argument(
|
||||
@@ -364,13 +376,17 @@ def build(args):
|
||||
'-DFUZZ_RNG_SEED_SIZE={}'.format(args.fuzz_rng_seed_size),
|
||||
]
|
||||
|
||||
mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
|
||||
|
||||
# Set flags for options
|
||||
assert not (args.fuzzer and args.coverage)
|
||||
if args.coverage:
|
||||
common_flags += [
|
||||
'-fsanitize-coverage=trace-pc-guard,indirect-calls,trace-cmp'
|
||||
]
|
||||
if args.fuzzer:
|
||||
common_flags += ['-fsanitize=fuzzer']
|
||||
args.lib_fuzzing_engine = ''
|
||||
|
||||
mflags += ['LIB_FUZZING_ENGINE={}'.format(args.lib_fuzzing_engine)]
|
||||
|
||||
if args.sanitize_recover:
|
||||
recover_flags = ['-fsanitize-recover=all']
|
||||
|
||||
@@ -40,8 +40,13 @@ int main(int argc, char const **argv) {
|
||||
size_t readSize;
|
||||
FILE *file;
|
||||
|
||||
/* Check that it is a regular file, and that the fileSize is valid */
|
||||
FUZZ_ASSERT_MSG(UTIL_isRegularFile(fileName), fileName);
|
||||
/* Check that it is a regular file, and that the fileSize is valid.
|
||||
* If it is not a regular file, then it may have been deleted since we
|
||||
* constructed the list, so just skip it.
|
||||
*/
|
||||
if (!UTIL_isRegularFile(fileName)) {
|
||||
continue;
|
||||
}
|
||||
FUZZ_ASSERT_MSG(fileSize <= kMaxFileSize, fileName);
|
||||
/* Ensure we have a large enough buffer allocated */
|
||||
if (fileSize > bufferSize) {
|
||||
|
||||
@@ -25,9 +25,6 @@ static const int kMaxClevel = 19;
|
||||
|
||||
static ZSTD_CCtx *cctx = NULL;
|
||||
static ZSTD_DCtx *dctx = NULL;
|
||||
static void* cBuf = NULL;
|
||||
static void* rBuf = NULL;
|
||||
static size_t bufSize = 0;
|
||||
static uint32_t seed;
|
||||
|
||||
static size_t roundTripTest(void *result, size_t resultCapacity,
|
||||
@@ -36,16 +33,8 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
|
||||
{
|
||||
size_t cSize;
|
||||
if (FUZZ_rand(&seed) & 1) {
|
||||
ZSTD_inBuffer in = {src, srcSize, 0};
|
||||
ZSTD_outBuffer out = {compressed, compressedCapacity, 0};
|
||||
size_t err;
|
||||
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only);
|
||||
FUZZ_setRandomParameters(cctx, srcSize, &seed);
|
||||
err = ZSTD_compressStream2(cctx, &out, &in, ZSTD_e_end);
|
||||
FUZZ_ZASSERT(err);
|
||||
FUZZ_ASSERT(err == 0);
|
||||
cSize = out.pos;
|
||||
cSize = ZSTD_compress2(cctx, compressed, compressedCapacity, src, srcSize);
|
||||
} else {
|
||||
int const cLevel = FUZZ_rand(&seed) % kMaxClevel;
|
||||
cSize = ZSTD_compressCCtx(
|
||||
@@ -57,20 +46,21 @@ static size_t roundTripTest(void *result, size_t resultCapacity,
|
||||
|
||||
int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
{
|
||||
size_t neededBufSize;
|
||||
size_t const rBufSize = size;
|
||||
void* rBuf = malloc(rBufSize);
|
||||
size_t cBufSize = ZSTD_compressBound(size);
|
||||
void* cBuf;
|
||||
|
||||
seed = FUZZ_seed(&src, &size);
|
||||
neededBufSize = ZSTD_compressBound(size);
|
||||
/* Half of the time fuzz with a 1 byte smaller output size.
|
||||
* This will still succeed because we don't use a dictionary, so the dictID
|
||||
* field is empty, giving us 4 bytes of overhead.
|
||||
*/
|
||||
cBufSize -= FUZZ_rand32(&seed, 0, 1);
|
||||
cBuf = malloc(cBufSize);
|
||||
|
||||
FUZZ_ASSERT(cBuf && rBuf);
|
||||
|
||||
/* Allocate all buffers and contexts if not already allocated */
|
||||
if (neededBufSize > bufSize) {
|
||||
free(cBuf);
|
||||
free(rBuf);
|
||||
cBuf = malloc(neededBufSize);
|
||||
rBuf = malloc(neededBufSize);
|
||||
bufSize = neededBufSize;
|
||||
FUZZ_ASSERT(cBuf && rBuf);
|
||||
}
|
||||
if (!cctx) {
|
||||
cctx = ZSTD_createCCtx();
|
||||
FUZZ_ASSERT(cctx);
|
||||
@@ -82,11 +72,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
|
||||
{
|
||||
size_t const result =
|
||||
roundTripTest(rBuf, neededBufSize, cBuf, neededBufSize, src, size);
|
||||
roundTripTest(rBuf, rBufSize, cBuf, cBufSize, src, size);
|
||||
FUZZ_ZASSERT(result);
|
||||
FUZZ_ASSERT_MSG(result == size, "Incorrect regenerated size");
|
||||
FUZZ_ASSERT_MSG(!memcmp(src, rBuf, size), "Corruption!");
|
||||
}
|
||||
free(rBuf);
|
||||
free(cBuf);
|
||||
#ifndef STATEFUL_FUZZING
|
||||
ZSTD_freeCCtx(cctx); cctx = NULL;
|
||||
ZSTD_freeDCtx(dctx); dctx = NULL;
|
||||
|
||||
@@ -62,9 +62,8 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
if (!dstream) {
|
||||
dstream = ZSTD_createDStream();
|
||||
FUZZ_ASSERT(dstream);
|
||||
FUZZ_ASSERT(!ZSTD_isError(ZSTD_initDStream(dstream)));
|
||||
} else {
|
||||
FUZZ_ASSERT(!ZSTD_isError(ZSTD_resetDStream(dstream)));
|
||||
FUZZ_ZASSERT(ZSTD_DCtx_reset(dstream, ZSTD_reset_session_only));
|
||||
}
|
||||
|
||||
while (size > 0) {
|
||||
@@ -73,7 +72,6 @@ int LLVMFuzzerTestOneInput(const uint8_t *src, size_t size)
|
||||
ZSTD_outBuffer out = makeOutBuffer();
|
||||
size_t const rc = ZSTD_decompressStream(dstream, &out, &in);
|
||||
if (ZSTD_isError(rc)) goto error;
|
||||
if (rc == 0) FUZZ_ASSERT(!ZSTD_isError(ZSTD_resetDStream(dstream)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -63,7 +63,7 @@ static size_t compress(uint8_t *dst, size_t capacity,
|
||||
ZSTD_inBuffer in = makeInBuffer(&src, &srcSize);
|
||||
/* Mode controls the action. If mode == -1 we pick a new mode */
|
||||
int mode = -1;
|
||||
while (in.pos < in.size) {
|
||||
while (in.pos < in.size || mode != -1) {
|
||||
ZSTD_outBuffer out = makeOutBuffer(dst, capacity);
|
||||
/* Previous action finished, pick a new mode. */
|
||||
if (mode == -1) mode = FUZZ_rand(&seed) % 10;
|
||||
|
||||
@@ -8,10 +8,14 @@
|
||||
*/
|
||||
|
||||
#define ZSTD_STATIC_LINKING_ONLY
|
||||
#define ZDICT_STATIC_LINKING_ONLY
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#include "zstd_helpers.h"
|
||||
#include "fuzz_helpers.h"
|
||||
#include "zstd.h"
|
||||
#include "zdict.h"
|
||||
|
||||
static void set(ZSTD_CCtx *cctx, ZSTD_cParameter param, int value)
|
||||
{
|
||||
@@ -71,7 +75,6 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
|
||||
setRand(cctx, ZSTD_c_contentSizeFlag, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_checksumFlag, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_dictIDFlag, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
|
||||
/* Select long distance matchig parameters */
|
||||
setRand(cctx, ZSTD_c_enableLongDistanceMatching, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_ldmHashLog, ZSTD_HASHLOG_MIN, 16, state);
|
||||
@@ -81,4 +84,54 @@ void FUZZ_setRandomParameters(ZSTD_CCtx *cctx, size_t srcSize, uint32_t *state)
|
||||
state);
|
||||
setRand(cctx, ZSTD_c_ldmHashRateLog, ZSTD_LDM_HASHRATELOG_MIN,
|
||||
ZSTD_LDM_HASHRATELOG_MAX, state);
|
||||
/* Set misc parameters */
|
||||
setRand(cctx, ZSTD_c_nbWorkers, 0, 2, state);
|
||||
setRand(cctx, ZSTD_c_rsyncable, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_forceMaxWindow, 0, 1, state);
|
||||
setRand(cctx, ZSTD_c_literalCompressionMode, 0, 2, state);
|
||||
setRand(cctx, ZSTD_c_forceAttachDict, 0, 2, state);
|
||||
}
|
||||
|
||||
FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state)
|
||||
{
|
||||
size_t const dictSize = MAX(srcSize / 8, 1024);
|
||||
size_t const totalSampleSize = dictSize * 11;
|
||||
FUZZ_dict_t dict = { malloc(dictSize), dictSize };
|
||||
char* const samples = (char*)malloc(totalSampleSize);
|
||||
unsigned nbSamples = 100;
|
||||
size_t* const samplesSizes = (size_t*)malloc(sizeof(size_t) * nbSamples);
|
||||
size_t pos = 0;
|
||||
size_t sample = 0;
|
||||
ZDICT_fastCover_params_t params;
|
||||
FUZZ_ASSERT(dict.buff && samples && samplesSizes);
|
||||
|
||||
for (sample = 0; sample < nbSamples; ++sample) {
|
||||
size_t const remaining = totalSampleSize - pos;
|
||||
size_t const offset = FUZZ_rand32(state, 0, MAX(srcSize, 1) - 1);
|
||||
size_t const limit = MIN(srcSize - offset, remaining);
|
||||
size_t const toCopy = MIN(limit, remaining / (nbSamples - sample));
|
||||
memcpy(samples + pos, src + offset, toCopy);
|
||||
pos += toCopy;
|
||||
samplesSizes[sample] = toCopy;
|
||||
|
||||
}
|
||||
memset(samples + pos, 0, totalSampleSize - pos);
|
||||
|
||||
memset(¶ms, 0, sizeof(params));
|
||||
params.accel = 5;
|
||||
params.k = 40;
|
||||
params.d = 8;
|
||||
params.f = 14;
|
||||
params.zParams.compressionLevel = 1;
|
||||
dict.size = ZDICT_trainFromBuffer_fastCover(dict.buff, dictSize,
|
||||
samples, samplesSizes, nbSamples, params);
|
||||
if (ZSTD_isError(dict.size)) {
|
||||
free(dict.buff);
|
||||
memset(&dict, 0, sizeof(dict));
|
||||
}
|
||||
|
||||
free(samplesSizes);
|
||||
free(samples);
|
||||
|
||||
return dict;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
#ifndef ZSTD_HELPERS_H
|
||||
#define ZSTD_HELPERS_H
|
||||
|
||||
#define ZSTD_STATIC_LINKING_ONLY
|
||||
|
||||
#include "zstd.h"
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -27,6 +29,17 @@ ZSTD_compressionParameters FUZZ_randomCParams(size_t srcSize, uint32_t *state);
|
||||
ZSTD_frameParameters FUZZ_randomFParams(uint32_t *state);
|
||||
ZSTD_parameters FUZZ_randomParams(size_t srcSize, uint32_t *state);
|
||||
|
||||
typedef struct {
|
||||
void* buff;
|
||||
size_t size;
|
||||
} FUZZ_dict_t;
|
||||
|
||||
/* Quickly train a dictionary from a source for fuzzing.
|
||||
* NOTE: Don't use this to train production dictionaries, it is only optimized
|
||||
* for speed, and doesn't care about dictionary quality.
|
||||
*/
|
||||
FUZZ_dict_t FUZZ_train(void const* src, size_t srcSize, uint32_t *state);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
+249
-4
@@ -124,12 +124,14 @@ static U32 FUZ_highbit32(U32 v32)
|
||||
#define CHECK(fn) { CHECK_V(err, fn); }
|
||||
#define CHECKPLUS(var, fn, more) { CHECK_V(var, fn); more; }
|
||||
|
||||
#define CHECK_EQ(lhs, rhs) { \
|
||||
if ((lhs) != (rhs)) { \
|
||||
DISPLAY("Error L%u => %s != %s ", __LINE__, #lhs, #rhs); \
|
||||
#define CHECK_OP(op, lhs, rhs) { \
|
||||
if (!((lhs) op (rhs))) { \
|
||||
DISPLAY("Error L%u => FAILED %s %s %s ", __LINE__, #lhs, #op, #rhs); \
|
||||
goto _output_error; \
|
||||
} \
|
||||
}
|
||||
#define CHECK_EQ(lhs, rhs) CHECK_OP(==, lhs, rhs)
|
||||
#define CHECK_LT(lhs, rhs) CHECK_OP(<, lhs, rhs)
|
||||
|
||||
|
||||
/*=============================================
|
||||
@@ -374,6 +376,20 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : tight ZSTD_decompressBound test : ", testNb++);
|
||||
{
|
||||
unsigned long long bound = ZSTD_decompressBound(compressedBuffer, cSize);
|
||||
if (bound != CNBuffSize) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressBound test with invalid srcSize : ", testNb++);
|
||||
{
|
||||
unsigned long long bound = ZSTD_decompressBound(compressedBuffer, cSize - 1);
|
||||
if (bound != ZSTD_CONTENTSIZE_ERROR) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : decompress %u bytes : ", testNb++, (unsigned)CNBuffSize);
|
||||
{ size_t const r = ZSTD_decompress(decodedBuffer, CNBuffSize, compressedBuffer, cSize);
|
||||
if (r != CNBuffSize) goto _output_error; }
|
||||
@@ -429,6 +445,27 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
if (ZSTD_getErrorCode(r) != ZSTD_error_srcSize_wrong) goto _output_error; }
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressBound test with content size missing : ", testNb++);
|
||||
{ /* create compressed buffer with content size missing */
|
||||
ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_contentSizeFlag, 0) );
|
||||
CHECKPLUS(r, ZSTD_compress2(cctx,
|
||||
compressedBuffer, compressedBufferSize,
|
||||
CNBuffer, CNBuffSize),
|
||||
cSize=r );
|
||||
ZSTD_freeCCtx(cctx);
|
||||
}
|
||||
{ /* ensure frame content size is missing */
|
||||
ZSTD_frameHeader zfh;
|
||||
size_t const ret = ZSTD_getFrameHeader(&zfh, compressedBuffer, compressedBufferSize);
|
||||
if (ret != 0 || zfh.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) goto _output_error;
|
||||
}
|
||||
{ /* ensure CNBuffSize <= decompressBound */
|
||||
unsigned long long const bound = ZSTD_decompressBound(compressedBuffer, compressedBufferSize);
|
||||
if (CNBuffSize > bound) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3d : check CCtx size after compressing empty input : ", testNb++);
|
||||
{ ZSTD_CCtx* const cctx = ZSTD_createCCtx();
|
||||
size_t const r = ZSTD_compressCCtx(cctx, compressedBuffer, compressedBufferSize, NULL, 0, 19);
|
||||
@@ -828,6 +865,59 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
ZSTDMT_freeCCtx(mtctx);
|
||||
}
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : compress -T2 with/without literals compression : ", testNb++)
|
||||
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
||||
size_t cSize1, cSize2;
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 2) );
|
||||
cSize1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
||||
CHECK(cSize1);
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_literalCompressionMode, ZSTD_lcm_uncompressed) );
|
||||
cSize2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, CNBuffSize);
|
||||
CHECK(cSize2);
|
||||
CHECK_LT(cSize1, cSize2);
|
||||
ZSTD_freeCCtx(cctx);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Multithreaded ZSTD_compress2() with rsyncable : ", testNb++)
|
||||
{ ZSTD_CCtx* cctx = ZSTD_createCCtx();
|
||||
/* Set rsyncable and don't give the ZSTD_compressBound(CNBuffSize) so
|
||||
* ZSTDMT is forced to not take the shortcut.
|
||||
*/
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_nbWorkers, 1) );
|
||||
CHECK( ZSTD_CCtx_setParameter(cctx, ZSTD_c_rsyncable, 1) );
|
||||
CHECK( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize - 1, CNBuffer, CNBuffSize) );
|
||||
ZSTD_freeCCtx(cctx);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : setting multithreaded parameters : ", testNb++)
|
||||
{ ZSTD_CCtx_params* params = ZSTD_createCCtxParams();
|
||||
int value;
|
||||
/* Check that the overlap log and job size are unset. */
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
|
||||
CHECK_EQ(value, 0);
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
|
||||
CHECK_EQ(value, 0);
|
||||
/* Set and check the overlap log and job size. */
|
||||
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_overlapLog, 5) );
|
||||
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_jobSize, 2 MB) );
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
|
||||
CHECK_EQ(value, 5);
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
|
||||
CHECK_EQ(value, 2 MB);
|
||||
/* Set the number of worksers and check the overlap log and job size. */
|
||||
CHECK( ZSTD_CCtxParams_setParameter(params, ZSTD_c_nbWorkers, 2) );
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_overlapLog, &value) );
|
||||
CHECK_EQ(value, 5);
|
||||
CHECK( ZSTD_CCtxParams_getParameter(params, ZSTD_c_jobSize, &value) );
|
||||
CHECK_EQ(value, 2 MB);
|
||||
ZSTD_freeCCtxParams(params);
|
||||
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
/* Simple API multiframe test */
|
||||
DISPLAYLEVEL(3, "test%3i : compress multiple frames : ", testNb++);
|
||||
@@ -859,6 +949,11 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
if (r != CNBuffSize / 2) goto _output_error; }
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : get tight decompressed bound of multiple frames : ", testNb++);
|
||||
{ unsigned long long const bound = ZSTD_decompressBound(compressedBuffer, cSize);
|
||||
if (bound != CNBuffSize / 2) goto _output_error; }
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : decompress multiple frames : ", testNb++);
|
||||
{ CHECK_V(r, ZSTD_decompress(decodedBuffer, CNBuffSize, compressedBuffer, cSize));
|
||||
if (r != CNBuffSize / 2) goto _output_error; }
|
||||
@@ -1203,9 +1298,13 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
{
|
||||
size_t ret;
|
||||
MEM_writeLE32((char*)dictBuffer+2, ZSTD_MAGIC_DICTIONARY);
|
||||
/* Either operation is allowed to fail, but one must fail. */
|
||||
ret = ZSTD_CCtx_loadDictionary_advanced(
|
||||
cctx, (const char*)dictBuffer+2, dictSize-2, ZSTD_dlm_byRef, ZSTD_dct_auto);
|
||||
if (!ZSTD_isError(ret)) goto _output_error;
|
||||
if (!ZSTD_isError(ret)) {
|
||||
ret = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100));
|
||||
if (!ZSTD_isError(ret)) goto _output_error;
|
||||
}
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
@@ -1216,6 +1315,152 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
ret = ZSTD_CCtx_loadDictionary_advanced(
|
||||
cctx, (const char*)dictBuffer+2, dictSize-2, ZSTD_dlm_byRef, ZSTD_dct_rawContent);
|
||||
if (ZSTD_isError(ret)) goto _output_error;
|
||||
ret = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100));
|
||||
if (ZSTD_isError(ret)) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : ZSTD_CCtx_refCDict() then set parameters : ", testNb++);
|
||||
{ ZSTD_CDict* const cdict = ZSTD_createCDict(CNBuffer, dictSize, 1);
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, 12 ));
|
||||
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 1) );
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, 12 ));
|
||||
ZSTD_freeCDict(cdict);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading dictionary before setting parameters is the same as loading after : ", testNb++);
|
||||
{
|
||||
size_t size1, size2;
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 7) );
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
|
||||
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size1)) goto _output_error;
|
||||
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
|
||||
CHECK_Z( ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, 7) );
|
||||
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size2)) goto _output_error;
|
||||
|
||||
if (size1 != size2) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a dictionary clears the prefix : ", testNb++);
|
||||
{
|
||||
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a dictionary clears the cdict : ", testNb++);
|
||||
{
|
||||
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
|
||||
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
ZSTD_freeCDict(cdict);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a cdict clears the prefix : ", testNb++);
|
||||
{
|
||||
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
|
||||
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
ZSTD_freeCDict(cdict);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a cdict clears the dictionary : ", testNb++);
|
||||
{
|
||||
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
ZSTD_freeCDict(cdict);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a prefix clears the dictionary : ", testNb++);
|
||||
{
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loading a prefix clears the cdict : ", testNb++);
|
||||
{
|
||||
ZSTD_CDict* const cdict = ZSTD_createCDict(dictBuffer, dictSize, 1);
|
||||
CHECK_Z( ZSTD_CCtx_refCDict(cctx, cdict) );
|
||||
CHECK_Z( ZSTD_CCtx_refPrefix(cctx, (const char*)dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100)) );
|
||||
ZSTD_freeCDict(cdict);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loaded dictionary persists across reset session : ", testNb++);
|
||||
{
|
||||
size_t size1, size2;
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
|
||||
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size1)) goto _output_error;
|
||||
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only);
|
||||
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size2)) goto _output_error;
|
||||
|
||||
if (size1 != size2) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : Loaded dictionary is cleared after resetting parameters : ", testNb++);
|
||||
{
|
||||
size_t size1, size2;
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, CNBuffer, MIN(CNBuffSize, 10 KB)) );
|
||||
size1 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size1)) goto _output_error;
|
||||
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
size2 = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
if (ZSTD_isError(size2)) goto _output_error;
|
||||
|
||||
if (size1 == size2) goto _output_error;
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
ZSTD_CCtx_reset(cctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary(cctx, dictBuffer, dictSize) );
|
||||
cSize = ZSTD_compress2(cctx, compressedBuffer, compressedBufferSize, CNBuffer, MIN(CNBuffSize, 100 KB));
|
||||
CHECK_Z(cSize);
|
||||
DISPLAYLEVEL(3, "test%3i : ZSTD_decompressDCtx() with dictionary : ", testNb++);
|
||||
{
|
||||
ZSTD_DCtx* dctx = ZSTD_createDCtx();
|
||||
size_t ret;
|
||||
/* We should fail to decompress without a dictionary. */
|
||||
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
|
||||
ret = ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize);
|
||||
if (!ZSTD_isError(ret)) goto _output_error;
|
||||
/* We should succeed to decompress with the dictionary. */
|
||||
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
|
||||
CHECK_Z( ZSTD_DCtx_loadDictionary(dctx, dictBuffer, dictSize) );
|
||||
CHECK_Z( ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize) );
|
||||
/* The dictionary should presist across calls. */
|
||||
CHECK_Z( ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize) );
|
||||
/* When we reset the context the dictionary is cleared. */
|
||||
ZSTD_DCtx_reset(dctx, ZSTD_reset_session_and_parameters);
|
||||
ret = ZSTD_decompressDCtx(dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize);
|
||||
if (!ZSTD_isError(ret)) goto _output_error;
|
||||
ZSTD_freeDCtx(dctx);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
|
||||
|
||||
+34
-4
@@ -16,10 +16,11 @@
|
||||
/*===========================================
|
||||
* Dependencies
|
||||
*==========================================*/
|
||||
#include <stddef.h> /* size_t */
|
||||
#include <stdlib.h> /* malloc, free */
|
||||
#include <stdio.h> /* fprintf */
|
||||
#include <string.h> /* strlen */
|
||||
#include <stddef.h> /* size_t */
|
||||
#include <stdlib.h> /* malloc, free */
|
||||
#include <stdio.h> /* fprintf */
|
||||
#include <string.h> /* strlen */
|
||||
#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_decompressBound */
|
||||
#include "zstd.h"
|
||||
#include "zstd_errors.h"
|
||||
|
||||
@@ -130,12 +131,41 @@ static int testStreamingAPI(void)
|
||||
return error_code;
|
||||
}
|
||||
|
||||
static int testFrameDecoding(void)
|
||||
{
|
||||
if (strlen(EXPECTED) > ZSTD_decompressBound(COMPRESSED, COMPRESSED_SIZE)) {
|
||||
DISPLAY("ERROR: ZSTD_decompressBound: decompressed bound too small\n");
|
||||
return 1;
|
||||
}
|
||||
{ const char* ip = COMPRESSED;
|
||||
size_t remainingSize = COMPRESSED_SIZE;
|
||||
while (1) {
|
||||
size_t frameSize = ZSTD_findFrameCompressedSize(ip, remainingSize);
|
||||
if (ZSTD_isError(frameSize)) {
|
||||
DISPLAY("ERROR: ZSTD_findFrameCompressedSize: %s\n", ZSTD_getErrorName(frameSize));
|
||||
return 1;
|
||||
}
|
||||
if (frameSize > remainingSize) {
|
||||
DISPLAY("ERROR: ZSTD_findFrameCompressedSize: expected frameSize to align with src buffer");
|
||||
return 1;
|
||||
}
|
||||
ip += frameSize;
|
||||
remainingSize -= frameSize;
|
||||
if (remainingSize == 0) break;
|
||||
}
|
||||
}
|
||||
DISPLAY("Frame Decoding OK\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
{ int const ret = testSimpleAPI();
|
||||
if (ret) return ret; }
|
||||
{ int const ret = testStreamingAPI();
|
||||
if (ret) return ret; }
|
||||
{ int const ret = testFrameDecoding();
|
||||
if (ret) return ret; }
|
||||
|
||||
DISPLAY("OK\n");
|
||||
return 0;
|
||||
|
||||
+25
-4
@@ -200,6 +200,15 @@ $ZSTD tmp -fo tmp && die "zstd compression overwrote the input file"
|
||||
$ZSTD tmp.zst -dfo tmp.zst && die "zstd decompression overwrote the input file"
|
||||
$ECHO "test: detect that input file does not exist"
|
||||
$ZSTD nothere && die "zstd hasn't detected that input file does not exist"
|
||||
$ECHO "test: --[no-]compress-literals"
|
||||
$ZSTD tmp -c --no-compress-literals -1 | $ZSTD -t
|
||||
$ZSTD tmp -c --no-compress-literals --fast=1 | $ZSTD -t
|
||||
$ZSTD tmp -c --no-compress-literals -19 | $ZSTD -t
|
||||
$ZSTD tmp -c --compress-literals -1 | $ZSTD -t
|
||||
$ZSTD tmp -c --compress-literals --fast=1 | $ZSTD -t
|
||||
$ZSTD tmp -c --compress-literals -19 | $ZSTD -t
|
||||
$ZSTD -b --fast=1 -i1e1 tmp --compress-literals
|
||||
$ZSTD -b --fast=1 -i1e1 tmp --no-compress-literals
|
||||
|
||||
$ECHO "test : file removal"
|
||||
$ZSTD -f --rm tmp
|
||||
@@ -314,18 +323,28 @@ $ECHO foo | $ZSTD > /dev/full && die "write error not detected!"
|
||||
$ECHO "$ECHO foo | $ZSTD | $ZSTD -d > /dev/full"
|
||||
$ECHO foo | $ZSTD | $ZSTD -d > /dev/full && die "write error not detected!"
|
||||
|
||||
fi
|
||||
|
||||
|
||||
if [ "$isWindows" = false ] && [ "$UNAME" != 'SunOS' ] ; then
|
||||
|
||||
$ECHO "\n===> symbolic link test "
|
||||
|
||||
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
|
||||
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
|
||||
$ECHO "hello world" > hello.tmp
|
||||
ln -s hello.tmp world.tmp
|
||||
$ZSTD world.tmp hello.tmp
|
||||
ln -s hello.tmp world2.tmp
|
||||
$ZSTD world.tmp hello.tmp || true
|
||||
test -f hello.tmp.zst # regular file should have been compressed!
|
||||
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||
$ZSTD world.tmp || true
|
||||
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||
$ZSTD world.tmp world2.tmp || true
|
||||
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||
test ! -f world2.tmp.zst # symbolic link should not have been compressed!
|
||||
$ZSTD world.tmp hello.tmp -f
|
||||
test -f world.tmp.zst # symbolic link should have been compressed with --force
|
||||
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
|
||||
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
|
||||
|
||||
fi
|
||||
|
||||
@@ -391,6 +410,8 @@ $ECHO "- Create first dictionary "
|
||||
TESTFILE=../programs/zstdcli.c
|
||||
$ZSTD --train *.c ../programs/*.c -o tmpDict
|
||||
cp $TESTFILE tmp
|
||||
$ECHO "- Test dictionary compression with tmpDict as an input file and dictionary"
|
||||
$ZSTD -f tmpDict -D tmpDict && die "compression error not detected!"
|
||||
$ECHO "- Dictionary compression roundtrip"
|
||||
$ZSTD -f tmp -D tmpDict
|
||||
$ZSTD -d tmp.zst -D tmpDict -fo result
|
||||
@@ -815,7 +836,7 @@ FULL_COMPRESSED_FILE=${TEST_DATA_FILE}.zst
|
||||
TRUNCATED_COMPRESSED_FILE=truncated-input.txt.zst
|
||||
./datagen -g50000 > $TEST_DATA_FILE
|
||||
$ZSTD -f $TEST_DATA_FILE -o $FULL_COMPRESSED_FILE
|
||||
head -c 100 $FULL_COMPRESSED_FILE > $TRUNCATED_COMPRESSED_FILE
|
||||
dd bs=1 count=100 if=$FULL_COMPRESSED_FILE of=$TRUNCATED_COMPRESSED_FILE status=none
|
||||
$ZSTD --list $TRUNCATED_COMPRESSED_FILE && die "-l must fail on truncated file"
|
||||
|
||||
rm $TEST_DATA_FILE
|
||||
|
||||
@@ -90,6 +90,17 @@ static config_t mt_ldm = {
|
||||
.param_values = PARAM_VALUES(mt_ldm_param_values),
|
||||
};
|
||||
|
||||
static param_value_t mt_advanced_param_values[] = {
|
||||
{.param = ZSTD_c_nbWorkers, .value = 2},
|
||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
||||
};
|
||||
|
||||
static config_t mt_advanced = {
|
||||
.name = "multithreaded with advanced params",
|
||||
.cli_args = "-T2 --no-compress-literals",
|
||||
.param_values = PARAM_VALUES(mt_advanced_param_values),
|
||||
};
|
||||
|
||||
static param_value_t const small_wlog_param_values[] = {
|
||||
{.param = ZSTD_c_windowLog, .value = 10},
|
||||
};
|
||||
@@ -122,6 +133,39 @@ static config_t small_clog = {
|
||||
.param_values = PARAM_VALUES(small_clog_param_values),
|
||||
};
|
||||
|
||||
static param_value_t const uncompressed_literals_param_values[] = {
|
||||
{.param = ZSTD_c_compressionLevel, .value = 3},
|
||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
||||
};
|
||||
|
||||
static config_t uncompressed_literals = {
|
||||
.name = "uncompressed literals",
|
||||
.cli_args = "-3 --no-compress-literals",
|
||||
.param_values = PARAM_VALUES(uncompressed_literals_param_values),
|
||||
};
|
||||
|
||||
static param_value_t const uncompressed_literals_opt_param_values[] = {
|
||||
{.param = ZSTD_c_compressionLevel, .value = 19},
|
||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_uncompressed},
|
||||
};
|
||||
|
||||
static config_t uncompressed_literals_opt = {
|
||||
.name = "uncompressed literals optimal",
|
||||
.cli_args = "-19 --no-compress-literals",
|
||||
.param_values = PARAM_VALUES(uncompressed_literals_opt_param_values),
|
||||
};
|
||||
|
||||
static param_value_t const huffman_literals_param_values[] = {
|
||||
{.param = ZSTD_c_compressionLevel, .value = -1},
|
||||
{.param = ZSTD_c_literalCompressionMode, .value = ZSTD_lcm_huffman},
|
||||
};
|
||||
|
||||
static config_t huffman_literals = {
|
||||
.name = "huffman literals",
|
||||
.cli_args = "--fast=1 --compress-literals",
|
||||
.param_values = PARAM_VALUES(huffman_literals_param_values),
|
||||
};
|
||||
|
||||
static param_value_t const explicit_params_param_values[] = {
|
||||
{.param = ZSTD_c_checksumFlag, .value = 1},
|
||||
{.param = ZSTD_c_contentSizeFlag, .value = 0},
|
||||
@@ -155,6 +199,10 @@ static config_t const* g_configs[] = {
|
||||
&small_hlog,
|
||||
&small_clog,
|
||||
&explicit_params,
|
||||
&uncompressed_literals,
|
||||
&uncompressed_literals_opt,
|
||||
&huffman_literals,
|
||||
&mt_advanced,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
||||
+163
-58
@@ -175,8 +175,8 @@ static result_t compress_cctx_compress(
|
||||
state->compressed.capacity,
|
||||
input.data,
|
||||
input.size,
|
||||
state->dictionary.data,
|
||||
state->dictionary.size,
|
||||
config->use_dictionary ? state->dictionary.data : NULL,
|
||||
config->use_dictionary ? state->dictionary.size : 0,
|
||||
params);
|
||||
else if (config->use_dictionary)
|
||||
state->compressed.size = ZSTD_compress_usingDict(
|
||||
@@ -432,77 +432,158 @@ out:
|
||||
return result;
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress(
|
||||
method_state_t* base,
|
||||
config_t const* config) {
|
||||
buffer_state_t* state = container_of(base, buffer_state_t, base);
|
||||
|
||||
if (buffer_state_bad(state, config))
|
||||
return result_error(result_error_system_error);
|
||||
|
||||
int const level = config_get_level(config);
|
||||
if (level == CONFIG_NO_LEVEL)
|
||||
return result_error(result_error_skip);
|
||||
|
||||
ZSTD_CStream* zcs = ZSTD_createCStream();
|
||||
result_t result;
|
||||
if (zcs == NULL) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
static int init_cstream(
|
||||
buffer_state_t* state,
|
||||
ZSTD_CStream* zcs,
|
||||
config_t const* config,
|
||||
int const advanced,
|
||||
ZSTD_CDict** cdict)
|
||||
{
|
||||
size_t zret;
|
||||
if (config->use_dictionary) {
|
||||
zret = ZSTD_initCStream_usingDict(
|
||||
zcs, state->dictionary.data, state->dictionary.size, level);
|
||||
if (advanced) {
|
||||
ZSTD_parameters const params = config_get_zstd_params(config, 0, 0);
|
||||
ZSTD_CDict* dict = NULL;
|
||||
if (cdict) {
|
||||
*cdict = ZSTD_createCDict_advanced(
|
||||
state->dictionary.data,
|
||||
state->dictionary.size,
|
||||
ZSTD_dlm_byRef,
|
||||
ZSTD_dct_auto,
|
||||
params.cParams,
|
||||
ZSTD_defaultCMem);
|
||||
if (!*cdict) {
|
||||
return 1;
|
||||
}
|
||||
zret = ZSTD_initCStream_usingCDict_advanced(
|
||||
zcs, *cdict, params.fParams, ZSTD_CONTENTSIZE_UNKNOWN);
|
||||
} else {
|
||||
zret = ZSTD_initCStream_advanced(
|
||||
zcs,
|
||||
state->dictionary.data,
|
||||
state->dictionary.size,
|
||||
params,
|
||||
ZSTD_CONTENTSIZE_UNKNOWN);
|
||||
}
|
||||
} else {
|
||||
zret = ZSTD_initCStream(zcs, level);
|
||||
int const level = config_get_level(config);
|
||||
if (cdict) {
|
||||
*cdict = ZSTD_createCDict(
|
||||
state->dictionary.data,
|
||||
state->dictionary.size,
|
||||
level);
|
||||
if (!*cdict) {
|
||||
return 1;
|
||||
}
|
||||
zret = ZSTD_initCStream_usingCDict(zcs, *cdict);
|
||||
} else if (config->use_dictionary) {
|
||||
zret = ZSTD_initCStream_usingDict(
|
||||
zcs, state->dictionary.data, state->dictionary.size, level);
|
||||
} else {
|
||||
zret = ZSTD_initCStream(zcs, level);
|
||||
}
|
||||
}
|
||||
if (ZSTD_isError(zret)) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress_internal(
|
||||
method_state_t* base,
|
||||
config_t const* config,
|
||||
int const advanced,
|
||||
int const cdict) {
|
||||
buffer_state_t* state = container_of(base, buffer_state_t, base);
|
||||
|
||||
if (buffer_state_bad(state, config))
|
||||
return result_error(result_error_system_error);
|
||||
|
||||
|
||||
ZSTD_CStream* zcs = ZSTD_createCStream();
|
||||
ZSTD_CDict* cd = NULL;
|
||||
result_t result;
|
||||
if (zcs == NULL) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
if (init_cstream(state, zcs, config, advanced, cdict ? &cd : NULL)) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
|
||||
result_data_t data = {.total_size = 0};
|
||||
for (size_t i = 0; i < state->inputs.size; ++i) {
|
||||
data_buffer_t input = state->inputs.buffers[i];
|
||||
size_t zret = ZSTD_resetCStream(
|
||||
zcs,
|
||||
config->no_pledged_src_size ? ZSTD_CONTENTSIZE_UNKNOWN : input.size);
|
||||
if (ZSTD_isError(zret)) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
|
||||
result_data_t data = {.total_size = 0};
|
||||
for (size_t i = 0; i < state->inputs.size; ++i) {
|
||||
data_buffer_t input = state->inputs.buffers[i];
|
||||
zret = ZSTD_resetCStream(
|
||||
zcs,
|
||||
config->no_pledged_src_size ? ZSTD_CONTENTSIZE_UNKNOWN
|
||||
: input.size);
|
||||
while (input.size > 0) {
|
||||
ZSTD_inBuffer in = {input.data, MIN(input.size, 4096)};
|
||||
input.data += in.size;
|
||||
input.size -= in.size;
|
||||
ZSTD_EndDirective const op =
|
||||
input.size > 0 ? ZSTD_e_continue : ZSTD_e_end;
|
||||
zret = 0;
|
||||
while (in.pos < in.size || (op == ZSTD_e_end && zret != 0)) {
|
||||
ZSTD_outBuffer out = {state->compressed.data,
|
||||
MIN(state->compressed.capacity, 1024)};
|
||||
if (op == ZSTD_e_continue || in.pos < in.size)
|
||||
zret = ZSTD_compressStream(zcs, &out, &in);
|
||||
else
|
||||
zret = ZSTD_endStream(zcs, &out);
|
||||
if (ZSTD_isError(zret)) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
|
||||
while (input.size > 0) {
|
||||
ZSTD_inBuffer in = {input.data, MIN(input.size, 4096)};
|
||||
input.data += in.size;
|
||||
input.size -= in.size;
|
||||
ZSTD_EndDirective const op =
|
||||
input.size > 0 ? ZSTD_e_continue : ZSTD_e_end;
|
||||
zret = 0;
|
||||
while (in.pos < in.size || (op == ZSTD_e_end && zret != 0)) {
|
||||
ZSTD_outBuffer out = {state->compressed.data,
|
||||
MIN(state->compressed.capacity, 1024)};
|
||||
if (op == ZSTD_e_continue || in.pos < in.size)
|
||||
zret = ZSTD_compressStream(zcs, &out, &in);
|
||||
else
|
||||
zret = ZSTD_endStream(zcs, &out);
|
||||
if (ZSTD_isError(zret)) {
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
data.total_size += out.pos;
|
||||
}
|
||||
result = result_error(result_error_compression_error);
|
||||
goto out;
|
||||
}
|
||||
data.total_size += out.pos;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
result = result_data(data);
|
||||
result = result_data(data);
|
||||
out:
|
||||
ZSTD_freeCStream(zcs);
|
||||
ZSTD_freeCDict(cd);
|
||||
return result;
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress(
|
||||
method_state_t* base,
|
||||
config_t const* config)
|
||||
{
|
||||
return old_streaming_compress_internal(
|
||||
base, config, /* advanced */ 0, /* cdict */ 0);
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress_advanced(
|
||||
method_state_t* base,
|
||||
config_t const* config)
|
||||
{
|
||||
return old_streaming_compress_internal(
|
||||
base, config, /* advanced */ 1, /* cdict */ 0);
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress_cdict(
|
||||
method_state_t* base,
|
||||
config_t const* config)
|
||||
{
|
||||
return old_streaming_compress_internal(
|
||||
base, config, /* advanced */ 0, /* cdict */ 1);
|
||||
}
|
||||
|
||||
static result_t old_streaming_compress_cdict_advanced(
|
||||
method_state_t* base,
|
||||
config_t const* config)
|
||||
{
|
||||
return old_streaming_compress_internal(
|
||||
base, config, /* advanced */ 1, /* cdict */ 1);
|
||||
}
|
||||
|
||||
method_t const simple = {
|
||||
.name = "compress simple",
|
||||
.create = buffer_state_create,
|
||||
@@ -545,6 +626,27 @@ method_t const old_streaming = {
|
||||
.destroy = buffer_state_destroy,
|
||||
};
|
||||
|
||||
method_t const old_streaming_advanced = {
|
||||
.name = "old streaming advanced",
|
||||
.create = buffer_state_create,
|
||||
.compress = old_streaming_compress,
|
||||
.destroy = buffer_state_destroy,
|
||||
};
|
||||
|
||||
method_t const old_streaming_cdict = {
|
||||
.name = "old streaming cdcit",
|
||||
.create = buffer_state_create,
|
||||
.compress = old_streaming_compress,
|
||||
.destroy = buffer_state_destroy,
|
||||
};
|
||||
|
||||
method_t const old_streaming_advanced_cdict = {
|
||||
.name = "old streaming advanced cdict",
|
||||
.create = buffer_state_create,
|
||||
.compress = old_streaming_compress,
|
||||
.destroy = buffer_state_destroy,
|
||||
};
|
||||
|
||||
method_t const cli = {
|
||||
.name = "zstdcli",
|
||||
.create = method_state_create,
|
||||
@@ -560,6 +662,9 @@ static method_t const* g_methods[] = {
|
||||
&advanced_one_pass_small_out,
|
||||
&advanced_streaming,
|
||||
&old_streaming,
|
||||
&old_streaming_advanced,
|
||||
&old_streaming_cdict,
|
||||
&old_streaming_advanced_cdict,
|
||||
NULL,
|
||||
};
|
||||
|
||||
|
||||
+816
-448
@@ -1,448 +1,816 @@
|
||||
Data, Config, Method, Total compressed size
|
||||
silesia.tar, level -5, compress simple, 7160438
|
||||
silesia.tar, level -3, compress simple, 6789024
|
||||
silesia.tar, level -1, compress simple, 6195462
|
||||
silesia.tar, level 0, compress simple, 4875008
|
||||
silesia.tar, level 1, compress simple, 5339697
|
||||
silesia.tar, level 3, compress simple, 4875008
|
||||
silesia.tar, level 4, compress simple, 4813507
|
||||
silesia.tar, level 5, compress simple, 4722235
|
||||
silesia.tar, level 6, compress simple, 4672194
|
||||
silesia.tar, level 7, compress simple, 4606658
|
||||
silesia.tar, level 9, compress simple, 4554098
|
||||
silesia.tar, level 13, compress simple, 4491702
|
||||
silesia.tar, level 16, compress simple, 4381277
|
||||
silesia.tar, level 19, compress simple, 4281514
|
||||
silesia, level -5, compress cctx, 7152294
|
||||
silesia, level -3, compress cctx, 6789969
|
||||
silesia, level -1, compress cctx, 6191548
|
||||
silesia, level 0, compress cctx, 4862377
|
||||
silesia, level 1, compress cctx, 5318036
|
||||
silesia, level 3, compress cctx, 4862377
|
||||
silesia, level 4, compress cctx, 4800629
|
||||
silesia, level 5, compress cctx, 4710178
|
||||
silesia, level 6, compress cctx, 4659996
|
||||
silesia, level 7, compress cctx, 4596234
|
||||
silesia, level 9, compress cctx, 4543862
|
||||
silesia, level 13, compress cctx, 4482073
|
||||
silesia, level 16, compress cctx, 4377391
|
||||
silesia, level 19, compress cctx, 4293262
|
||||
silesia, long distance mode, compress cctx, 4862377
|
||||
silesia, multithreaded, compress cctx, 4862377
|
||||
silesia, multithreaded long distance mode, compress cctx, 4862377
|
||||
silesia, small window log, compress cctx, 7115734
|
||||
silesia, small hash log, compress cctx, 6554898
|
||||
silesia, small chain log, compress cctx, 4931093
|
||||
silesia, explicit params, compress cctx, 4813352
|
||||
github, level -5, compress cctx, 232744
|
||||
github, level -5 with dict, compress cctx, 47294
|
||||
github, level -3, compress cctx, 220611
|
||||
github, level -3 with dict, compress cctx, 48047
|
||||
github, level -1, compress cctx, 176575
|
||||
github, level -1 with dict, compress cctx, 43527
|
||||
github, level 0, compress cctx, 136397
|
||||
github, level 0 with dict, compress cctx, 41536
|
||||
github, level 1, compress cctx, 143457
|
||||
github, level 1 with dict, compress cctx, 42157
|
||||
github, level 3, compress cctx, 136397
|
||||
github, level 3 with dict, compress cctx, 41536
|
||||
github, level 4, compress cctx, 136144
|
||||
github, level 4 with dict, compress cctx, 41721
|
||||
github, level 5, compress cctx, 135106
|
||||
github, level 5 with dict, compress cctx, 38934
|
||||
github, level 6, compress cctx, 135108
|
||||
github, level 6 with dict, compress cctx, 38628
|
||||
github, level 7, compress cctx, 135108
|
||||
github, level 7 with dict, compress cctx, 38741
|
||||
github, level 9, compress cctx, 135108
|
||||
github, level 9 with dict, compress cctx, 39335
|
||||
github, level 13, compress cctx, 133717
|
||||
github, level 13 with dict, compress cctx, 39923
|
||||
github, level 16, compress cctx, 133717
|
||||
github, level 16 with dict, compress cctx, 37568
|
||||
github, level 19, compress cctx, 133717
|
||||
github, level 19 with dict, compress cctx, 37567
|
||||
github, long distance mode, compress cctx, decompression error
|
||||
github, multithreaded, compress cctx, decompression error
|
||||
github, multithreaded long distance mode, compress cctx, decompression error
|
||||
github, small window log, compress cctx, decompression error
|
||||
github, small hash log, compress cctx, decompression error
|
||||
github, small chain log, compress cctx, decompression error
|
||||
github, explicit params, compress cctx, decompression error
|
||||
silesia, level -5, zstdcli, 7152342
|
||||
silesia, level -3, zstdcli, 6790021
|
||||
silesia, level -1, zstdcli, 6191597
|
||||
silesia, level 0, zstdcli, 4862425
|
||||
silesia, level 1, zstdcli, 5318084
|
||||
silesia, level 3, zstdcli, 4862425
|
||||
silesia, level 4, zstdcli, 4800677
|
||||
silesia, level 5, zstdcli, 4710226
|
||||
silesia, level 6, zstdcli, 4660044
|
||||
silesia, level 7, zstdcli, 4596282
|
||||
silesia, level 9, zstdcli, 4543910
|
||||
silesia, level 13, zstdcli, 4482121
|
||||
silesia, level 16, zstdcli, 4377439
|
||||
silesia, level 19, zstdcli, 4293310
|
||||
silesia, long distance mode, zstdcli, 4853437
|
||||
silesia, multithreaded, zstdcli, 4862425
|
||||
silesia, multithreaded long distance mode, zstdcli, 4853437
|
||||
silesia, small window log, zstdcli, 7126434
|
||||
silesia, small hash log, zstdcli, 6554946
|
||||
silesia, small chain log, zstdcli, 4931141
|
||||
silesia, explicit params, zstdcli, 4815380
|
||||
silesia.tar, level -5, zstdcli, 7161160
|
||||
silesia.tar, level -3, zstdcli, 6789865
|
||||
silesia.tar, level -1, zstdcli, 6196433
|
||||
silesia.tar, level 0, zstdcli, 4875136
|
||||
silesia.tar, level 1, zstdcli, 5340573
|
||||
silesia.tar, level 3, zstdcli, 4875136
|
||||
silesia.tar, level 4, zstdcli, 4814531
|
||||
silesia.tar, level 5, zstdcli, 4723284
|
||||
silesia.tar, level 6, zstdcli, 4673591
|
||||
silesia.tar, level 7, zstdcli, 4608342
|
||||
silesia.tar, level 9, zstdcli, 4554700
|
||||
silesia.tar, level 13, zstdcli, 4491706
|
||||
silesia.tar, level 16, zstdcli, 4381281
|
||||
silesia.tar, level 19, zstdcli, 4281518
|
||||
silesia.tar, no source size, zstdcli, 4875132
|
||||
silesia.tar, long distance mode, zstdcli, 4866975
|
||||
silesia.tar, multithreaded, zstdcli, 4875136
|
||||
silesia.tar, multithreaded long distance mode, zstdcli, 4866975
|
||||
silesia.tar, small window log, zstdcli, 7130434
|
||||
silesia.tar, small hash log, zstdcli, 6587841
|
||||
silesia.tar, small chain log, zstdcli, 4943259
|
||||
silesia.tar, explicit params, zstdcli, 4839202
|
||||
github, level -5, zstdcli, 234744
|
||||
github, level -5 with dict, zstdcli, 48718
|
||||
github, level -3, zstdcli, 222611
|
||||
github, level -3 with dict, zstdcli, 47395
|
||||
github, level -1, zstdcli, 178575
|
||||
github, level -1 with dict, zstdcli, 45170
|
||||
github, level 0, zstdcli, 138397
|
||||
github, level 0 with dict, zstdcli, 43170
|
||||
github, level 1, zstdcli, 145457
|
||||
github, level 1 with dict, zstdcli, 43682
|
||||
github, level 3, zstdcli, 138397
|
||||
github, level 3 with dict, zstdcli, 43170
|
||||
github, level 4, zstdcli, 138144
|
||||
github, level 4 with dict, zstdcli, 43306
|
||||
github, level 5, zstdcli, 137106
|
||||
github, level 5 with dict, zstdcli, 40938
|
||||
github, level 6, zstdcli, 137108
|
||||
github, level 6 with dict, zstdcli, 40632
|
||||
github, level 7, zstdcli, 137108
|
||||
github, level 7 with dict, zstdcli, 40766
|
||||
github, level 9, zstdcli, 137108
|
||||
github, level 9 with dict, zstdcli, 41326
|
||||
github, level 13, zstdcli, 135717
|
||||
github, level 13 with dict, zstdcli, 41716
|
||||
github, level 16, zstdcli, 135717
|
||||
github, level 16 with dict, zstdcli, 39577
|
||||
github, level 19, zstdcli, 135717
|
||||
github, level 19 with dict, zstdcli, 39576
|
||||
github, long distance mode, zstdcli, 138397
|
||||
github, multithreaded, zstdcli, 138397
|
||||
github, multithreaded long distance mode, zstdcli, 138397
|
||||
github, small window log, zstdcli, 138397
|
||||
github, small hash log, zstdcli, 137467
|
||||
github, small chain log, zstdcli, 138314
|
||||
github, explicit params, zstdcli, 136140
|
||||
silesia, level -5, advanced one pass, 7152294
|
||||
silesia, level -3, advanced one pass, 6789969
|
||||
silesia, level -1, advanced one pass, 6191548
|
||||
silesia, level 0, advanced one pass, 4862377
|
||||
silesia, level 1, advanced one pass, 5318036
|
||||
silesia, level 3, advanced one pass, 4862377
|
||||
silesia, level 4, advanced one pass, 4800629
|
||||
silesia, level 5, advanced one pass, 4710178
|
||||
silesia, level 6, advanced one pass, 4659996
|
||||
silesia, level 7, advanced one pass, 4596234
|
||||
silesia, level 9, advanced one pass, 4543862
|
||||
silesia, level 13, advanced one pass, 4482073
|
||||
silesia, level 16, advanced one pass, 4377391
|
||||
silesia, level 19, advanced one pass, 4293262
|
||||
silesia, no source size, advanced one pass, 4862377
|
||||
silesia, long distance mode, advanced one pass, 4853389
|
||||
silesia, multithreaded, advanced one pass, 4862377
|
||||
silesia, multithreaded long distance mode, advanced one pass, 4853389
|
||||
silesia, small window log, advanced one pass, 7126386
|
||||
silesia, small hash log, advanced one pass, 6554898
|
||||
silesia, small chain log, advanced one pass, 4931093
|
||||
silesia, explicit params, advanced one pass, 4815369
|
||||
silesia.tar, level -5, advanced one pass, 7160438
|
||||
silesia.tar, level -3, advanced one pass, 6789024
|
||||
silesia.tar, level -1, advanced one pass, 6195462
|
||||
silesia.tar, level 0, advanced one pass, 4875008
|
||||
silesia.tar, level 1, advanced one pass, 5339697
|
||||
silesia.tar, level 3, advanced one pass, 4875008
|
||||
silesia.tar, level 4, advanced one pass, 4813507
|
||||
silesia.tar, level 5, advanced one pass, 4722235
|
||||
silesia.tar, level 6, advanced one pass, 4672194
|
||||
silesia.tar, level 7, advanced one pass, 4606658
|
||||
silesia.tar, level 9, advanced one pass, 4554098
|
||||
silesia.tar, level 13, advanced one pass, 4491702
|
||||
silesia.tar, level 16, advanced one pass, 4381277
|
||||
silesia.tar, level 19, advanced one pass, 4281514
|
||||
silesia.tar, no source size, advanced one pass, 4875008
|
||||
silesia.tar, long distance mode, advanced one pass, 4861218
|
||||
silesia.tar, multithreaded, advanced one pass, 4874631
|
||||
silesia.tar, multithreaded long distance mode, advanced one pass, 4860683
|
||||
silesia.tar, small window log, advanced one pass, 7130394
|
||||
silesia.tar, small hash log, advanced one pass, 6587833
|
||||
silesia.tar, small chain log, advanced one pass, 4943255
|
||||
silesia.tar, explicit params, advanced one pass, 4829974
|
||||
github, level -5, advanced one pass, 232744
|
||||
github, level -5 with dict, advanced one pass, 46718
|
||||
github, level -3, advanced one pass, 220611
|
||||
github, level -3 with dict, advanced one pass, 45395
|
||||
github, level -1, advanced one pass, 176575
|
||||
github, level -1 with dict, advanced one pass, 43170
|
||||
github, level 0, advanced one pass, 136397
|
||||
github, level 0 with dict, advanced one pass, 41170
|
||||
github, level 1, advanced one pass, 143457
|
||||
github, level 1 with dict, advanced one pass, 41682
|
||||
github, level 3, advanced one pass, 136397
|
||||
github, level 3 with dict, advanced one pass, 41170
|
||||
github, level 4, advanced one pass, 136144
|
||||
github, level 4 with dict, advanced one pass, 41306
|
||||
github, level 5, advanced one pass, 135106
|
||||
github, level 5 with dict, advanced one pass, 38938
|
||||
github, level 6, advanced one pass, 135108
|
||||
github, level 6 with dict, advanced one pass, 38632
|
||||
github, level 7, advanced one pass, 135108
|
||||
github, level 7 with dict, advanced one pass, 38766
|
||||
github, level 9, advanced one pass, 135108
|
||||
github, level 9 with dict, advanced one pass, 39326
|
||||
github, level 13, advanced one pass, 133717
|
||||
github, level 13 with dict, advanced one pass, 39716
|
||||
github, level 16, advanced one pass, 133717
|
||||
github, level 16 with dict, advanced one pass, 37577
|
||||
github, level 19, advanced one pass, 133717
|
||||
github, level 19 with dict, advanced one pass, 37576
|
||||
github, no source size, advanced one pass, 136397
|
||||
github, long distance mode, advanced one pass, 136397
|
||||
github, multithreaded, advanced one pass, 136397
|
||||
github, multithreaded long distance mode, advanced one pass, 136397
|
||||
github, small window log, advanced one pass, 136397
|
||||
github, small hash log, advanced one pass, 135467
|
||||
github, small chain log, advanced one pass, 136314
|
||||
github, explicit params, advanced one pass, 137670
|
||||
silesia, level -5, advanced one pass small out, 7152294
|
||||
silesia, level -3, advanced one pass small out, 6789969
|
||||
silesia, level -1, advanced one pass small out, 6191548
|
||||
silesia, level 0, advanced one pass small out, 4862377
|
||||
silesia, level 1, advanced one pass small out, 5318036
|
||||
silesia, level 3, advanced one pass small out, 4862377
|
||||
silesia, level 4, advanced one pass small out, 4800629
|
||||
silesia, level 5, advanced one pass small out, 4710178
|
||||
silesia, level 6, advanced one pass small out, 4659996
|
||||
silesia, level 7, advanced one pass small out, 4596234
|
||||
silesia, level 9, advanced one pass small out, 4543862
|
||||
silesia, level 13, advanced one pass small out, 4482073
|
||||
silesia, level 16, advanced one pass small out, 4377391
|
||||
silesia, level 19, advanced one pass small out, 4293262
|
||||
silesia, no source size, advanced one pass small out, 4862377
|
||||
silesia, long distance mode, advanced one pass small out, 4853389
|
||||
silesia, multithreaded, advanced one pass small out, 4862377
|
||||
silesia, multithreaded long distance mode, advanced one pass small out, 4853389
|
||||
silesia, small window log, advanced one pass small out, 7126386
|
||||
silesia, small hash log, advanced one pass small out, 6554898
|
||||
silesia, small chain log, advanced one pass small out, 4931093
|
||||
silesia, explicit params, advanced one pass small out, 4815369
|
||||
silesia.tar, level -5, advanced one pass small out, 7160438
|
||||
silesia.tar, level -3, advanced one pass small out, 6789024
|
||||
silesia.tar, level -1, advanced one pass small out, 6195462
|
||||
silesia.tar, level 0, advanced one pass small out, 4875008
|
||||
silesia.tar, level 1, advanced one pass small out, 5339697
|
||||
silesia.tar, level 3, advanced one pass small out, 4875008
|
||||
silesia.tar, level 4, advanced one pass small out, 4813507
|
||||
silesia.tar, level 5, advanced one pass small out, 4722235
|
||||
silesia.tar, level 6, advanced one pass small out, 4672194
|
||||
silesia.tar, level 7, advanced one pass small out, 4606658
|
||||
silesia.tar, level 9, advanced one pass small out, 4554098
|
||||
silesia.tar, level 13, advanced one pass small out, 4491702
|
||||
silesia.tar, level 16, advanced one pass small out, 4381277
|
||||
silesia.tar, level 19, advanced one pass small out, 4281514
|
||||
silesia.tar, no source size, advanced one pass small out, 4875008
|
||||
silesia.tar, long distance mode, advanced one pass small out, 4861218
|
||||
silesia.tar, multithreaded, advanced one pass small out, 4874631
|
||||
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4860683
|
||||
silesia.tar, small window log, advanced one pass small out, 7130394
|
||||
silesia.tar, small hash log, advanced one pass small out, 6587833
|
||||
silesia.tar, small chain log, advanced one pass small out, 4943255
|
||||
silesia.tar, explicit params, advanced one pass small out, 4829974
|
||||
github, level -5, advanced one pass small out, 232744
|
||||
github, level -5 with dict, advanced one pass small out, 46718
|
||||
github, level -3, advanced one pass small out, 220611
|
||||
github, level -3 with dict, advanced one pass small out, 45395
|
||||
github, level -1, advanced one pass small out, 176575
|
||||
github, level -1 with dict, advanced one pass small out, 43170
|
||||
github, level 0, advanced one pass small out, 136397
|
||||
github, level 0 with dict, advanced one pass small out, 41170
|
||||
github, level 1, advanced one pass small out, 143457
|
||||
github, level 1 with dict, advanced one pass small out, 41682
|
||||
github, level 3, advanced one pass small out, 136397
|
||||
github, level 3 with dict, advanced one pass small out, 41170
|
||||
github, level 4, advanced one pass small out, 136144
|
||||
github, level 4 with dict, advanced one pass small out, 41306
|
||||
github, level 5, advanced one pass small out, 135106
|
||||
github, level 5 with dict, advanced one pass small out, 38938
|
||||
github, level 6, advanced one pass small out, 135108
|
||||
github, level 6 with dict, advanced one pass small out, 38632
|
||||
github, level 7, advanced one pass small out, 135108
|
||||
github, level 7 with dict, advanced one pass small out, 38766
|
||||
github, level 9, advanced one pass small out, 135108
|
||||
github, level 9 with dict, advanced one pass small out, 39326
|
||||
github, level 13, advanced one pass small out, 133717
|
||||
github, level 13 with dict, advanced one pass small out, 39716
|
||||
github, level 16, advanced one pass small out, 133717
|
||||
github, level 16 with dict, advanced one pass small out, 37577
|
||||
github, level 19, advanced one pass small out, 133717
|
||||
github, level 19 with dict, advanced one pass small out, 37576
|
||||
github, no source size, advanced one pass small out, 136397
|
||||
github, long distance mode, advanced one pass small out, 136397
|
||||
github, multithreaded, advanced one pass small out, 136397
|
||||
github, multithreaded long distance mode, advanced one pass small out, 136397
|
||||
github, small window log, advanced one pass small out, 136397
|
||||
github, small hash log, advanced one pass small out, 135467
|
||||
github, small chain log, advanced one pass small out, 136314
|
||||
github, explicit params, advanced one pass small out, 137670
|
||||
silesia, level -5, advanced streaming, 7152294
|
||||
silesia, level -3, advanced streaming, 6789973
|
||||
silesia, level -1, advanced streaming, 6191549
|
||||
silesia, level 0, advanced streaming, 4862377
|
||||
silesia, level 1, advanced streaming, 5318036
|
||||
silesia, level 3, advanced streaming, 4862377
|
||||
silesia, level 4, advanced streaming, 4800629
|
||||
silesia, level 5, advanced streaming, 4710178
|
||||
silesia, level 6, advanced streaming, 4659996
|
||||
silesia, level 7, advanced streaming, 4596234
|
||||
silesia, level 9, advanced streaming, 4543862
|
||||
silesia, level 13, advanced streaming, 4482073
|
||||
silesia, level 16, advanced streaming, 4377391
|
||||
silesia, level 19, advanced streaming, 4293262
|
||||
silesia, no source size, advanced streaming, 4862341
|
||||
silesia, long distance mode, advanced streaming, 4853389
|
||||
silesia, multithreaded, advanced streaming, 4862377
|
||||
silesia, multithreaded long distance mode, advanced streaming, 4853389
|
||||
silesia, small window log, advanced streaming, 7126389
|
||||
silesia, small hash log, advanced streaming, 6554898
|
||||
silesia, small chain log, advanced streaming, 4931093
|
||||
silesia, explicit params, advanced streaming, 4815380
|
||||
silesia.tar, level -5, advanced streaming, 7160440
|
||||
silesia.tar, level -3, advanced streaming, 6789026
|
||||
silesia.tar, level -1, advanced streaming, 6195465
|
||||
silesia.tar, level 0, advanced streaming, 4875010
|
||||
silesia.tar, level 1, advanced streaming, 5339701
|
||||
silesia.tar, level 3, advanced streaming, 4875010
|
||||
silesia.tar, level 4, advanced streaming, 4813507
|
||||
silesia.tar, level 5, advanced streaming, 4722240
|
||||
silesia.tar, level 6, advanced streaming, 4672203
|
||||
silesia.tar, level 7, advanced streaming, 4606658
|
||||
silesia.tar, level 9, advanced streaming, 4554105
|
||||
silesia.tar, level 13, advanced streaming, 4491703
|
||||
silesia.tar, level 16, advanced streaming, 4381277
|
||||
silesia.tar, level 19, advanced streaming, 4281514
|
||||
silesia.tar, no source size, advanced streaming, 4875006
|
||||
silesia.tar, long distance mode, advanced streaming, 4861218
|
||||
silesia.tar, multithreaded, advanced streaming, 4875132
|
||||
silesia.tar, multithreaded long distance mode, advanced streaming, 4866971
|
||||
silesia.tar, small window log, advanced streaming, 7130394
|
||||
silesia.tar, small hash log, advanced streaming, 6587834
|
||||
silesia.tar, small chain log, advanced streaming, 4943260
|
||||
silesia.tar, explicit params, advanced streaming, 4830002
|
||||
github, level -5, advanced streaming, 232744
|
||||
github, level -5 with dict, advanced streaming, 46718
|
||||
github, level -3, advanced streaming, 220611
|
||||
github, level -3 with dict, advanced streaming, 45395
|
||||
github, level -1, advanced streaming, 176575
|
||||
github, level -1 with dict, advanced streaming, 43170
|
||||
github, level 0, advanced streaming, 136397
|
||||
github, level 0 with dict, advanced streaming, 41170
|
||||
github, level 1, advanced streaming, 143457
|
||||
github, level 1 with dict, advanced streaming, 41682
|
||||
github, level 3, advanced streaming, 136397
|
||||
github, level 3 with dict, advanced streaming, 41170
|
||||
github, level 4, advanced streaming, 136144
|
||||
github, level 4 with dict, advanced streaming, 41306
|
||||
github, level 5, advanced streaming, 135106
|
||||
github, level 5 with dict, advanced streaming, 38938
|
||||
github, level 6, advanced streaming, 135108
|
||||
github, level 6 with dict, advanced streaming, 38632
|
||||
github, level 7, advanced streaming, 135108
|
||||
github, level 7 with dict, advanced streaming, 38766
|
||||
github, level 9, advanced streaming, 135108
|
||||
github, level 9 with dict, advanced streaming, 39326
|
||||
github, level 13, advanced streaming, 133717
|
||||
github, level 13 with dict, advanced streaming, 39716
|
||||
github, level 16, advanced streaming, 133717
|
||||
github, level 16 with dict, advanced streaming, 37577
|
||||
github, level 19, advanced streaming, 133717
|
||||
github, level 19 with dict, advanced streaming, 37576
|
||||
github, no source size, advanced streaming, 136397
|
||||
github, long distance mode, advanced streaming, 136397
|
||||
github, multithreaded, advanced streaming, 136397
|
||||
github, multithreaded long distance mode, advanced streaming, 136397
|
||||
github, small window log, advanced streaming, 136397
|
||||
github, small hash log, advanced streaming, 135467
|
||||
github, small chain log, advanced streaming, 136314
|
||||
github, explicit params, advanced streaming, 137670
|
||||
silesia, level -5, old streaming, 7152294
|
||||
silesia, level -3, old streaming, 6789973
|
||||
silesia, level -1, old streaming, 6191549
|
||||
silesia, level 0, old streaming, 4862377
|
||||
silesia, level 1, old streaming, 5318036
|
||||
silesia, level 3, old streaming, 4862377
|
||||
silesia, level 4, old streaming, 4800629
|
||||
silesia, level 5, old streaming, 4710178
|
||||
silesia, level 6, old streaming, 4659996
|
||||
silesia, level 7, old streaming, 4596234
|
||||
silesia, level 9, old streaming, 4543862
|
||||
silesia, level 13, old streaming, 4482073
|
||||
silesia, level 16, old streaming, 4377391
|
||||
silesia, level 19, old streaming, 4293262
|
||||
silesia, no source size, old streaming, 4862341
|
||||
silesia.tar, level -5, old streaming, 7160440
|
||||
silesia.tar, level -3, old streaming, 6789026
|
||||
silesia.tar, level -1, old streaming, 6195465
|
||||
silesia.tar, level 0, old streaming, 4875010
|
||||
silesia.tar, level 1, old streaming, 5339701
|
||||
silesia.tar, level 3, old streaming, 4875010
|
||||
silesia.tar, level 4, old streaming, 4813507
|
||||
silesia.tar, level 5, old streaming, 4722240
|
||||
silesia.tar, level 6, old streaming, 4672203
|
||||
silesia.tar, level 7, old streaming, 4606658
|
||||
silesia.tar, level 9, old streaming, 4554105
|
||||
silesia.tar, level 13, old streaming, 4491703
|
||||
silesia.tar, level 16, old streaming, 4381277
|
||||
silesia.tar, level 19, old streaming, 4281514
|
||||
silesia.tar, no source size, old streaming, 4875006
|
||||
github, level -5, old streaming, 232744
|
||||
github, level -5 with dict, old streaming, 46718
|
||||
github, level -3, old streaming, 220611
|
||||
github, level -3 with dict, old streaming, 45395
|
||||
github, level -1, old streaming, 176575
|
||||
github, level -1 with dict, old streaming, 43170
|
||||
github, level 0, old streaming, 136397
|
||||
github, level 0 with dict, old streaming, 41170
|
||||
github, level 1, old streaming, 143457
|
||||
github, level 1 with dict, old streaming, 41682
|
||||
github, level 3, old streaming, 136397
|
||||
github, level 3 with dict, old streaming, 41170
|
||||
github, level 4, old streaming, 136144
|
||||
github, level 4 with dict, old streaming, 41306
|
||||
github, level 5, old streaming, 135106
|
||||
github, level 5 with dict, old streaming, 38938
|
||||
github, level 6, old streaming, 135108
|
||||
github, level 6 with dict, old streaming, 38632
|
||||
github, level 7, old streaming, 135108
|
||||
github, level 7 with dict, old streaming, 38766
|
||||
github, level 9, old streaming, 135108
|
||||
github, level 9 with dict, old streaming, 39326
|
||||
github, level 13, old streaming, 133717
|
||||
github, level 13 with dict, old streaming, 39716
|
||||
github, level 16, old streaming, 133717
|
||||
github, level 16 with dict, old streaming, 37577
|
||||
github, level 19, old streaming, 133717
|
||||
github, level 19 with dict, old streaming, 37576
|
||||
github, no source size, old streaming, 141003
|
||||
Data, Config, Method, Total compressed size
|
||||
silesia.tar, level -5, compress simple, 6738558
|
||||
silesia.tar, level -3, compress simple, 6446362
|
||||
silesia.tar, level -1, compress simple, 6186038
|
||||
silesia.tar, level 0, compress simple, 4875008
|
||||
silesia.tar, level 1, compress simple, 5334825
|
||||
silesia.tar, level 3, compress simple, 4875008
|
||||
silesia.tar, level 4, compress simple, 4813507
|
||||
silesia.tar, level 5, compress simple, 4722235
|
||||
silesia.tar, level 6, compress simple, 4672194
|
||||
silesia.tar, level 7, compress simple, 4606658
|
||||
silesia.tar, level 9, compress simple, 4554098
|
||||
silesia.tar, level 13, compress simple, 4491702
|
||||
silesia.tar, level 16, compress simple, 4381277
|
||||
silesia.tar, level 19, compress simple, 4281514
|
||||
silesia.tar, uncompressed literals, compress simple, 4875008
|
||||
silesia.tar, uncompressed literals optimal, compress simple, 4281514
|
||||
silesia.tar, huffman literals, compress simple, 6186038
|
||||
silesia, level -5, compress cctx, 6737567
|
||||
silesia, level -3, compress cctx, 6444663
|
||||
silesia, level -1, compress cctx, 6178442
|
||||
silesia, level 0, compress cctx, 4862377
|
||||
silesia, level 1, compress cctx, 5313144
|
||||
silesia, level 3, compress cctx, 4862377
|
||||
silesia, level 4, compress cctx, 4800629
|
||||
silesia, level 5, compress cctx, 4710178
|
||||
silesia, level 6, compress cctx, 4659996
|
||||
silesia, level 7, compress cctx, 4596234
|
||||
silesia, level 9, compress cctx, 4543862
|
||||
silesia, level 13, compress cctx, 4482073
|
||||
silesia, level 16, compress cctx, 4377391
|
||||
silesia, level 19, compress cctx, 4293262
|
||||
silesia, long distance mode, compress cctx, 4862377
|
||||
silesia, multithreaded, compress cctx, 4862377
|
||||
silesia, multithreaded long distance mode, compress cctx, 4862377
|
||||
silesia, small window log, compress cctx, 7115734
|
||||
silesia, small hash log, compress cctx, 6554898
|
||||
silesia, small chain log, compress cctx, 4931093
|
||||
silesia, explicit params, compress cctx, 4813352
|
||||
silesia, uncompressed literals, compress cctx, 4862377
|
||||
silesia, uncompressed literals optimal, compress cctx, 4293262
|
||||
silesia, huffman literals, compress cctx, 6178442
|
||||
silesia, multithreaded with advanced params, compress cctx, 4862377
|
||||
github, level -5, compress cctx, 205285
|
||||
github, level -5 with dict, compress cctx, 47294
|
||||
github, level -3, compress cctx, 190643
|
||||
github, level -3 with dict, compress cctx, 48047
|
||||
github, level -1, compress cctx, 175568
|
||||
github, level -1 with dict, compress cctx, 43527
|
||||
github, level 0, compress cctx, 136397
|
||||
github, level 0 with dict, compress cctx, 41536
|
||||
github, level 1, compress cctx, 142450
|
||||
github, level 1 with dict, compress cctx, 42157
|
||||
github, level 3, compress cctx, 136397
|
||||
github, level 3 with dict, compress cctx, 41536
|
||||
github, level 4, compress cctx, 136144
|
||||
github, level 4 with dict, compress cctx, 41721
|
||||
github, level 5, compress cctx, 135106
|
||||
github, level 5 with dict, compress cctx, 38934
|
||||
github, level 6, compress cctx, 135108
|
||||
github, level 6 with dict, compress cctx, 38628
|
||||
github, level 7, compress cctx, 135108
|
||||
github, level 7 with dict, compress cctx, 38741
|
||||
github, level 9, compress cctx, 135108
|
||||
github, level 9 with dict, compress cctx, 39335
|
||||
github, level 13, compress cctx, 133717
|
||||
github, level 13 with dict, compress cctx, 39923
|
||||
github, level 16, compress cctx, 133717
|
||||
github, level 16 with dict, compress cctx, 37568
|
||||
github, level 19, compress cctx, 133717
|
||||
github, level 19 with dict, compress cctx, 37567
|
||||
github, long distance mode, compress cctx, 141473
|
||||
github, multithreaded, compress cctx, 141473
|
||||
github, multithreaded long distance mode, compress cctx, 141473
|
||||
github, small window log, compress cctx, 141473
|
||||
github, small hash log, compress cctx, 138943
|
||||
github, small chain log, compress cctx, 139239
|
||||
github, explicit params, compress cctx, 140924
|
||||
github, uncompressed literals, compress cctx, 136397
|
||||
github, uncompressed literals optimal, compress cctx, 133717
|
||||
github, huffman literals, compress cctx, 175568
|
||||
github, multithreaded with advanced params, compress cctx, 141473
|
||||
silesia, level -5, zstdcli, 6882514
|
||||
silesia, level -3, zstdcli, 6568406
|
||||
silesia, level -1, zstdcli, 6183433
|
||||
silesia, level 0, zstdcli, 4862425
|
||||
silesia, level 1, zstdcli, 5314157
|
||||
silesia, level 3, zstdcli, 4862425
|
||||
silesia, level 4, zstdcli, 4800677
|
||||
silesia, level 5, zstdcli, 4710226
|
||||
silesia, level 6, zstdcli, 4660044
|
||||
silesia, level 7, zstdcli, 4596282
|
||||
silesia, level 9, zstdcli, 4543910
|
||||
silesia, level 13, zstdcli, 4482121
|
||||
silesia, level 16, zstdcli, 4377439
|
||||
silesia, level 19, zstdcli, 4293310
|
||||
silesia, long distance mode, zstdcli, 4853437
|
||||
silesia, multithreaded, zstdcli, 4862425
|
||||
silesia, multithreaded long distance mode, zstdcli, 4853437
|
||||
silesia, small window log, zstdcli, 7126434
|
||||
silesia, small hash log, zstdcli, 6554946
|
||||
silesia, small chain log, zstdcli, 4931141
|
||||
silesia, explicit params, zstdcli, 4815380
|
||||
silesia, uncompressed literals, zstdcli, 5155472
|
||||
silesia, uncompressed literals optimal, zstdcli, 4325475
|
||||
silesia, huffman literals, zstdcli, 5331158
|
||||
silesia, multithreaded with advanced params, zstdcli, 5155472
|
||||
silesia.tar, level -5, zstdcli, 6738906
|
||||
silesia.tar, level -3, zstdcli, 6448409
|
||||
silesia.tar, level -1, zstdcli, 6186908
|
||||
silesia.tar, level 0, zstdcli, 4875136
|
||||
silesia.tar, level 1, zstdcli, 5336255
|
||||
silesia.tar, level 3, zstdcli, 4875136
|
||||
silesia.tar, level 4, zstdcli, 4814531
|
||||
silesia.tar, level 5, zstdcli, 4723284
|
||||
silesia.tar, level 6, zstdcli, 4673591
|
||||
silesia.tar, level 7, zstdcli, 4608342
|
||||
silesia.tar, level 9, zstdcli, 4554700
|
||||
silesia.tar, level 13, zstdcli, 4491706
|
||||
silesia.tar, level 16, zstdcli, 4381281
|
||||
silesia.tar, level 19, zstdcli, 4281518
|
||||
silesia.tar, no source size, zstdcli, 4875132
|
||||
silesia.tar, long distance mode, zstdcli, 4866975
|
||||
silesia.tar, multithreaded, zstdcli, 4875136
|
||||
silesia.tar, multithreaded long distance mode, zstdcli, 4866975
|
||||
silesia.tar, small window log, zstdcli, 7130434
|
||||
silesia.tar, small hash log, zstdcli, 6587841
|
||||
silesia.tar, small chain log, zstdcli, 4943259
|
||||
silesia.tar, explicit params, zstdcli, 4839202
|
||||
silesia.tar, uncompressed literals, zstdcli, 5158134
|
||||
silesia.tar, uncompressed literals optimal, zstdcli, 4321098
|
||||
silesia.tar, huffman literals, zstdcli, 5347560
|
||||
silesia.tar, multithreaded with advanced params, zstdcli, 5158134
|
||||
github, level -5, zstdcli, 207285
|
||||
github, level -5 with dict, zstdcli, 48718
|
||||
github, level -3, zstdcli, 192643
|
||||
github, level -3 with dict, zstdcli, 47395
|
||||
github, level -1, zstdcli, 177568
|
||||
github, level -1 with dict, zstdcli, 45170
|
||||
github, level 0, zstdcli, 138397
|
||||
github, level 0 with dict, zstdcli, 43170
|
||||
github, level 1, zstdcli, 144450
|
||||
github, level 1 with dict, zstdcli, 43682
|
||||
github, level 3, zstdcli, 138397
|
||||
github, level 3 with dict, zstdcli, 43170
|
||||
github, level 4, zstdcli, 138144
|
||||
github, level 4 with dict, zstdcli, 43306
|
||||
github, level 5, zstdcli, 137106
|
||||
github, level 5 with dict, zstdcli, 40938
|
||||
github, level 6, zstdcli, 137108
|
||||
github, level 6 with dict, zstdcli, 40632
|
||||
github, level 7, zstdcli, 137108
|
||||
github, level 7 with dict, zstdcli, 40766
|
||||
github, level 9, zstdcli, 137108
|
||||
github, level 9 with dict, zstdcli, 41326
|
||||
github, level 13, zstdcli, 135717
|
||||
github, level 13 with dict, zstdcli, 41716
|
||||
github, level 16, zstdcli, 135717
|
||||
github, level 16 with dict, zstdcli, 39577
|
||||
github, level 19, zstdcli, 135717
|
||||
github, level 19 with dict, zstdcli, 39576
|
||||
github, long distance mode, zstdcli, 138397
|
||||
github, multithreaded, zstdcli, 138397
|
||||
github, multithreaded long distance mode, zstdcli, 138397
|
||||
github, small window log, zstdcli, 138397
|
||||
github, small hash log, zstdcli, 137467
|
||||
github, small chain log, zstdcli, 138314
|
||||
github, explicit params, zstdcli, 136140
|
||||
github, uncompressed literals, zstdcli, 169004
|
||||
github, uncompressed literals optimal, zstdcli, 158824
|
||||
github, huffman literals, zstdcli, 144450
|
||||
github, multithreaded with advanced params, zstdcli, 169004
|
||||
silesia, level -5, advanced one pass, 6737567
|
||||
silesia, level -3, advanced one pass, 6444663
|
||||
silesia, level -1, advanced one pass, 6178442
|
||||
silesia, level 0, advanced one pass, 4862377
|
||||
silesia, level 1, advanced one pass, 5313144
|
||||
silesia, level 3, advanced one pass, 4862377
|
||||
silesia, level 4, advanced one pass, 4800629
|
||||
silesia, level 5, advanced one pass, 4710178
|
||||
silesia, level 6, advanced one pass, 4659996
|
||||
silesia, level 7, advanced one pass, 4596234
|
||||
silesia, level 9, advanced one pass, 4543862
|
||||
silesia, level 13, advanced one pass, 4482073
|
||||
silesia, level 16, advanced one pass, 4377391
|
||||
silesia, level 19, advanced one pass, 4293262
|
||||
silesia, no source size, advanced one pass, 4862377
|
||||
silesia, long distance mode, advanced one pass, 4853389
|
||||
silesia, multithreaded, advanced one pass, 4862377
|
||||
silesia, multithreaded long distance mode, advanced one pass, 4853389
|
||||
silesia, small window log, advanced one pass, 7126386
|
||||
silesia, small hash log, advanced one pass, 6554898
|
||||
silesia, small chain log, advanced one pass, 4931093
|
||||
silesia, explicit params, advanced one pass, 4815369
|
||||
silesia, uncompressed literals, advanced one pass, 5155424
|
||||
silesia, uncompressed literals optimal, advanced one pass, 4325427
|
||||
silesia, huffman literals, advanced one pass, 5326210
|
||||
silesia, multithreaded with advanced params, advanced one pass, 5155424
|
||||
silesia.tar, level -5, advanced one pass, 6738558
|
||||
silesia.tar, level -3, advanced one pass, 6446362
|
||||
silesia.tar, level -1, advanced one pass, 6186038
|
||||
silesia.tar, level 0, advanced one pass, 4875008
|
||||
silesia.tar, level 1, advanced one pass, 5334825
|
||||
silesia.tar, level 3, advanced one pass, 4875008
|
||||
silesia.tar, level 4, advanced one pass, 4813507
|
||||
silesia.tar, level 5, advanced one pass, 4722235
|
||||
silesia.tar, level 6, advanced one pass, 4672194
|
||||
silesia.tar, level 7, advanced one pass, 4606658
|
||||
silesia.tar, level 9, advanced one pass, 4554098
|
||||
silesia.tar, level 13, advanced one pass, 4491702
|
||||
silesia.tar, level 16, advanced one pass, 4381277
|
||||
silesia.tar, level 19, advanced one pass, 4281514
|
||||
silesia.tar, no source size, advanced one pass, 4875008
|
||||
silesia.tar, long distance mode, advanced one pass, 4861218
|
||||
silesia.tar, multithreaded, advanced one pass, 4874631
|
||||
silesia.tar, multithreaded long distance mode, advanced one pass, 4860683
|
||||
silesia.tar, small window log, advanced one pass, 7130394
|
||||
silesia.tar, small hash log, advanced one pass, 6587833
|
||||
silesia.tar, small chain log, advanced one pass, 4943255
|
||||
silesia.tar, explicit params, advanced one pass, 4829974
|
||||
silesia.tar, uncompressed literals, advanced one pass, 5157992
|
||||
silesia.tar, uncompressed literals optimal, advanced one pass, 4321094
|
||||
silesia.tar, huffman literals, advanced one pass, 5347283
|
||||
silesia.tar, multithreaded with advanced params, advanced one pass, 5158545
|
||||
github, level -5, advanced one pass, 205285
|
||||
github, level -5 with dict, advanced one pass, 46718
|
||||
github, level -3, advanced one pass, 190643
|
||||
github, level -3 with dict, advanced one pass, 45395
|
||||
github, level -1, advanced one pass, 175568
|
||||
github, level -1 with dict, advanced one pass, 43170
|
||||
github, level 0, advanced one pass, 136397
|
||||
github, level 0 with dict, advanced one pass, 41170
|
||||
github, level 1, advanced one pass, 142450
|
||||
github, level 1 with dict, advanced one pass, 41682
|
||||
github, level 3, advanced one pass, 136397
|
||||
github, level 3 with dict, advanced one pass, 41170
|
||||
github, level 4, advanced one pass, 136144
|
||||
github, level 4 with dict, advanced one pass, 41306
|
||||
github, level 5, advanced one pass, 135106
|
||||
github, level 5 with dict, advanced one pass, 38938
|
||||
github, level 6, advanced one pass, 135108
|
||||
github, level 6 with dict, advanced one pass, 38632
|
||||
github, level 7, advanced one pass, 135108
|
||||
github, level 7 with dict, advanced one pass, 38766
|
||||
github, level 9, advanced one pass, 135108
|
||||
github, level 9 with dict, advanced one pass, 39326
|
||||
github, level 13, advanced one pass, 133717
|
||||
github, level 13 with dict, advanced one pass, 39716
|
||||
github, level 16, advanced one pass, 133717
|
||||
github, level 16 with dict, advanced one pass, 37577
|
||||
github, level 19, advanced one pass, 133717
|
||||
github, level 19 with dict, advanced one pass, 37576
|
||||
github, no source size, advanced one pass, 136397
|
||||
github, long distance mode, advanced one pass, 136397
|
||||
github, multithreaded, advanced one pass, 136397
|
||||
github, multithreaded long distance mode, advanced one pass, 136397
|
||||
github, small window log, advanced one pass, 136397
|
||||
github, small hash log, advanced one pass, 135467
|
||||
github, small chain log, advanced one pass, 136314
|
||||
github, explicit params, advanced one pass, 137670
|
||||
github, uncompressed literals, advanced one pass, 167004
|
||||
github, uncompressed literals optimal, advanced one pass, 156824
|
||||
github, huffman literals, advanced one pass, 142450
|
||||
github, multithreaded with advanced params, advanced one pass, 167004
|
||||
silesia, level -5, advanced one pass small out, 6737567
|
||||
silesia, level -3, advanced one pass small out, 6444663
|
||||
silesia, level -1, advanced one pass small out, 6178442
|
||||
silesia, level 0, advanced one pass small out, 4862377
|
||||
silesia, level 1, advanced one pass small out, 5313144
|
||||
silesia, level 3, advanced one pass small out, 4862377
|
||||
silesia, level 4, advanced one pass small out, 4800629
|
||||
silesia, level 5, advanced one pass small out, 4710178
|
||||
silesia, level 6, advanced one pass small out, 4659996
|
||||
silesia, level 7, advanced one pass small out, 4596234
|
||||
silesia, level 9, advanced one pass small out, 4543862
|
||||
silesia, level 13, advanced one pass small out, 4482073
|
||||
silesia, level 16, advanced one pass small out, 4377391
|
||||
silesia, level 19, advanced one pass small out, 4293262
|
||||
silesia, no source size, advanced one pass small out, 4862377
|
||||
silesia, long distance mode, advanced one pass small out, 4853389
|
||||
silesia, multithreaded, advanced one pass small out, 4862377
|
||||
silesia, multithreaded long distance mode, advanced one pass small out, 4853389
|
||||
silesia, small window log, advanced one pass small out, 7126386
|
||||
silesia, small hash log, advanced one pass small out, 6554898
|
||||
silesia, small chain log, advanced one pass small out, 4931093
|
||||
silesia, explicit params, advanced one pass small out, 4815369
|
||||
silesia, uncompressed literals, advanced one pass small out, 5155424
|
||||
silesia, uncompressed literals optimal, advanced one pass small out, 4325427
|
||||
silesia, huffman literals, advanced one pass small out, 5326210
|
||||
silesia, multithreaded with advanced params, advanced one pass small out, 5155424
|
||||
silesia.tar, level -5, advanced one pass small out, 6738558
|
||||
silesia.tar, level -3, advanced one pass small out, 6446362
|
||||
silesia.tar, level -1, advanced one pass small out, 6186038
|
||||
silesia.tar, level 0, advanced one pass small out, 4875008
|
||||
silesia.tar, level 1, advanced one pass small out, 5334825
|
||||
silesia.tar, level 3, advanced one pass small out, 4875008
|
||||
silesia.tar, level 4, advanced one pass small out, 4813507
|
||||
silesia.tar, level 5, advanced one pass small out, 4722235
|
||||
silesia.tar, level 6, advanced one pass small out, 4672194
|
||||
silesia.tar, level 7, advanced one pass small out, 4606658
|
||||
silesia.tar, level 9, advanced one pass small out, 4554098
|
||||
silesia.tar, level 13, advanced one pass small out, 4491702
|
||||
silesia.tar, level 16, advanced one pass small out, 4381277
|
||||
silesia.tar, level 19, advanced one pass small out, 4281514
|
||||
silesia.tar, no source size, advanced one pass small out, 4875008
|
||||
silesia.tar, long distance mode, advanced one pass small out, 4861218
|
||||
silesia.tar, multithreaded, advanced one pass small out, 4874631
|
||||
silesia.tar, multithreaded long distance mode, advanced one pass small out, 4860683
|
||||
silesia.tar, small window log, advanced one pass small out, 7130394
|
||||
silesia.tar, small hash log, advanced one pass small out, 6587833
|
||||
silesia.tar, small chain log, advanced one pass small out, 4943255
|
||||
silesia.tar, explicit params, advanced one pass small out, 4829974
|
||||
silesia.tar, uncompressed literals, advanced one pass small out, 5157992
|
||||
silesia.tar, uncompressed literals optimal, advanced one pass small out, 4321094
|
||||
silesia.tar, huffman literals, advanced one pass small out, 5347283
|
||||
silesia.tar, multithreaded with advanced params, advanced one pass small out, 5158545
|
||||
github, level -5, advanced one pass small out, 205285
|
||||
github, level -5 with dict, advanced one pass small out, 46718
|
||||
github, level -3, advanced one pass small out, 190643
|
||||
github, level -3 with dict, advanced one pass small out, 45395
|
||||
github, level -1, advanced one pass small out, 175568
|
||||
github, level -1 with dict, advanced one pass small out, 43170
|
||||
github, level 0, advanced one pass small out, 136397
|
||||
github, level 0 with dict, advanced one pass small out, 41170
|
||||
github, level 1, advanced one pass small out, 142450
|
||||
github, level 1 with dict, advanced one pass small out, 41682
|
||||
github, level 3, advanced one pass small out, 136397
|
||||
github, level 3 with dict, advanced one pass small out, 41170
|
||||
github, level 4, advanced one pass small out, 136144
|
||||
github, level 4 with dict, advanced one pass small out, 41306
|
||||
github, level 5, advanced one pass small out, 135106
|
||||
github, level 5 with dict, advanced one pass small out, 38938
|
||||
github, level 6, advanced one pass small out, 135108
|
||||
github, level 6 with dict, advanced one pass small out, 38632
|
||||
github, level 7, advanced one pass small out, 135108
|
||||
github, level 7 with dict, advanced one pass small out, 38766
|
||||
github, level 9, advanced one pass small out, 135108
|
||||
github, level 9 with dict, advanced one pass small out, 39326
|
||||
github, level 13, advanced one pass small out, 133717
|
||||
github, level 13 with dict, advanced one pass small out, 39716
|
||||
github, level 16, advanced one pass small out, 133717
|
||||
github, level 16 with dict, advanced one pass small out, 37577
|
||||
github, level 19, advanced one pass small out, 133717
|
||||
github, level 19 with dict, advanced one pass small out, 37576
|
||||
github, no source size, advanced one pass small out, 136397
|
||||
github, long distance mode, advanced one pass small out, 136397
|
||||
github, multithreaded, advanced one pass small out, 136397
|
||||
github, multithreaded long distance mode, advanced one pass small out, 136397
|
||||
github, small window log, advanced one pass small out, 136397
|
||||
github, small hash log, advanced one pass small out, 135467
|
||||
github, small chain log, advanced one pass small out, 136314
|
||||
github, explicit params, advanced one pass small out, 137670
|
||||
github, uncompressed literals, advanced one pass small out, 167004
|
||||
github, uncompressed literals optimal, advanced one pass small out, 156824
|
||||
github, huffman literals, advanced one pass small out, 142450
|
||||
github, multithreaded with advanced params, advanced one pass small out, 167004
|
||||
silesia, level -5, advanced streaming, 6882466
|
||||
silesia, level -3, advanced streaming, 6568358
|
||||
silesia, level -1, advanced streaming, 6183385
|
||||
silesia, level 0, advanced streaming, 4862377
|
||||
silesia, level 1, advanced streaming, 5314109
|
||||
silesia, level 3, advanced streaming, 4862377
|
||||
silesia, level 4, advanced streaming, 4800629
|
||||
silesia, level 5, advanced streaming, 4710178
|
||||
silesia, level 6, advanced streaming, 4659996
|
||||
silesia, level 7, advanced streaming, 4596234
|
||||
silesia, level 9, advanced streaming, 4543862
|
||||
silesia, level 13, advanced streaming, 4482073
|
||||
silesia, level 16, advanced streaming, 4377391
|
||||
silesia, level 19, advanced streaming, 4293262
|
||||
silesia, no source size, advanced streaming, 4862341
|
||||
silesia, long distance mode, advanced streaming, 4853389
|
||||
silesia, multithreaded, advanced streaming, 4862377
|
||||
silesia, multithreaded long distance mode, advanced streaming, 4853389
|
||||
silesia, small window log, advanced streaming, 7126389
|
||||
silesia, small hash log, advanced streaming, 6554898
|
||||
silesia, small chain log, advanced streaming, 4931093
|
||||
silesia, explicit params, advanced streaming, 4815380
|
||||
silesia, uncompressed literals, advanced streaming, 5155424
|
||||
silesia, uncompressed literals optimal, advanced streaming, 4325427
|
||||
silesia, huffman literals, advanced streaming, 5331110
|
||||
silesia, multithreaded with advanced params, advanced streaming, 5155424
|
||||
silesia.tar, level -5, advanced streaming, 6982738
|
||||
silesia.tar, level -3, advanced streaming, 6641264
|
||||
silesia.tar, level -1, advanced streaming, 6190789
|
||||
silesia.tar, level 0, advanced streaming, 4875010
|
||||
silesia.tar, level 1, advanced streaming, 5336879
|
||||
silesia.tar, level 3, advanced streaming, 4875010
|
||||
silesia.tar, level 4, advanced streaming, 4813507
|
||||
silesia.tar, level 5, advanced streaming, 4722240
|
||||
silesia.tar, level 6, advanced streaming, 4672203
|
||||
silesia.tar, level 7, advanced streaming, 4606658
|
||||
silesia.tar, level 9, advanced streaming, 4554105
|
||||
silesia.tar, level 13, advanced streaming, 4491703
|
||||
silesia.tar, level 16, advanced streaming, 4381277
|
||||
silesia.tar, level 19, advanced streaming, 4281514
|
||||
silesia.tar, no source size, advanced streaming, 4875006
|
||||
silesia.tar, long distance mode, advanced streaming, 4861218
|
||||
silesia.tar, multithreaded, advanced streaming, 4875132
|
||||
silesia.tar, multithreaded long distance mode, advanced streaming, 4866971
|
||||
silesia.tar, small window log, advanced streaming, 7130394
|
||||
silesia.tar, small hash log, advanced streaming, 6587834
|
||||
silesia.tar, small chain log, advanced streaming, 4943260
|
||||
silesia.tar, explicit params, advanced streaming, 4830002
|
||||
silesia.tar, uncompressed literals, advanced streaming, 5157995
|
||||
silesia.tar, uncompressed literals optimal, advanced streaming, 4321094
|
||||
silesia.tar, huffman literals, advanced streaming, 5352306
|
||||
silesia.tar, multithreaded with advanced params, advanced streaming, 5158130
|
||||
github, level -5, advanced streaming, 205285
|
||||
github, level -5 with dict, advanced streaming, 46718
|
||||
github, level -3, advanced streaming, 190643
|
||||
github, level -3 with dict, advanced streaming, 45395
|
||||
github, level -1, advanced streaming, 175568
|
||||
github, level -1 with dict, advanced streaming, 43170
|
||||
github, level 0, advanced streaming, 136397
|
||||
github, level 0 with dict, advanced streaming, 41170
|
||||
github, level 1, advanced streaming, 142450
|
||||
github, level 1 with dict, advanced streaming, 41682
|
||||
github, level 3, advanced streaming, 136397
|
||||
github, level 3 with dict, advanced streaming, 41170
|
||||
github, level 4, advanced streaming, 136144
|
||||
github, level 4 with dict, advanced streaming, 41306
|
||||
github, level 5, advanced streaming, 135106
|
||||
github, level 5 with dict, advanced streaming, 38938
|
||||
github, level 6, advanced streaming, 135108
|
||||
github, level 6 with dict, advanced streaming, 38632
|
||||
github, level 7, advanced streaming, 135108
|
||||
github, level 7 with dict, advanced streaming, 38766
|
||||
github, level 9, advanced streaming, 135108
|
||||
github, level 9 with dict, advanced streaming, 39326
|
||||
github, level 13, advanced streaming, 133717
|
||||
github, level 13 with dict, advanced streaming, 39716
|
||||
github, level 16, advanced streaming, 133717
|
||||
github, level 16 with dict, advanced streaming, 37577
|
||||
github, level 19, advanced streaming, 133717
|
||||
github, level 19 with dict, advanced streaming, 37576
|
||||
github, no source size, advanced streaming, 136397
|
||||
github, long distance mode, advanced streaming, 136397
|
||||
github, multithreaded, advanced streaming, 136397
|
||||
github, multithreaded long distance mode, advanced streaming, 136397
|
||||
github, small window log, advanced streaming, 136397
|
||||
github, small hash log, advanced streaming, 135467
|
||||
github, small chain log, advanced streaming, 136314
|
||||
github, explicit params, advanced streaming, 137670
|
||||
github, uncompressed literals, advanced streaming, 167004
|
||||
github, uncompressed literals optimal, advanced streaming, 156824
|
||||
github, huffman literals, advanced streaming, 142450
|
||||
github, multithreaded with advanced params, advanced streaming, 167004
|
||||
silesia, level -5, old streaming, 6882466
|
||||
silesia, level -3, old streaming, 6568358
|
||||
silesia, level -1, old streaming, 6183385
|
||||
silesia, level 0, old streaming, 4862377
|
||||
silesia, level 1, old streaming, 5314109
|
||||
silesia, level 3, old streaming, 4862377
|
||||
silesia, level 4, old streaming, 4800629
|
||||
silesia, level 5, old streaming, 4710178
|
||||
silesia, level 6, old streaming, 4659996
|
||||
silesia, level 7, old streaming, 4596234
|
||||
silesia, level 9, old streaming, 4543862
|
||||
silesia, level 13, old streaming, 4482073
|
||||
silesia, level 16, old streaming, 4377391
|
||||
silesia, level 19, old streaming, 4293262
|
||||
silesia, no source size, old streaming, 4862341
|
||||
silesia, long distance mode, old streaming, 12000408
|
||||
silesia, multithreaded, old streaming, 12000408
|
||||
silesia, multithreaded long distance mode, old streaming, 12000408
|
||||
silesia, small window log, old streaming, 12000408
|
||||
silesia, small hash log, old streaming, 12000408
|
||||
silesia, small chain log, old streaming, 12000408
|
||||
silesia, explicit params, old streaming, 12000408
|
||||
silesia, uncompressed literals, old streaming, 4862377
|
||||
silesia, uncompressed literals optimal, old streaming, 4293262
|
||||
silesia, huffman literals, old streaming, 6183385
|
||||
silesia, multithreaded with advanced params, old streaming, 12000408
|
||||
silesia.tar, level -5, old streaming, 6982738
|
||||
silesia.tar, level -3, old streaming, 6641264
|
||||
silesia.tar, level -1, old streaming, 6190789
|
||||
silesia.tar, level 0, old streaming, 4875010
|
||||
silesia.tar, level 1, old streaming, 5336879
|
||||
silesia.tar, level 3, old streaming, 4875010
|
||||
silesia.tar, level 4, old streaming, 4813507
|
||||
silesia.tar, level 5, old streaming, 4722240
|
||||
silesia.tar, level 6, old streaming, 4672203
|
||||
silesia.tar, level 7, old streaming, 4606658
|
||||
silesia.tar, level 9, old streaming, 4554105
|
||||
silesia.tar, level 13, old streaming, 4491703
|
||||
silesia.tar, level 16, old streaming, 4381277
|
||||
silesia.tar, level 19, old streaming, 4281514
|
||||
silesia.tar, no source size, old streaming, 4875006
|
||||
silesia.tar, long distance mode, old streaming, 12022046
|
||||
silesia.tar, multithreaded, old streaming, 12022046
|
||||
silesia.tar, multithreaded long distance mode, old streaming, 12022046
|
||||
silesia.tar, small window log, old streaming, 12022046
|
||||
silesia.tar, small hash log, old streaming, 12022046
|
||||
silesia.tar, small chain log, old streaming, 12022046
|
||||
silesia.tar, explicit params, old streaming, 12022046
|
||||
silesia.tar, uncompressed literals, old streaming, 4875010
|
||||
silesia.tar, uncompressed literals optimal, old streaming, 4281514
|
||||
silesia.tar, huffman literals, old streaming, 6190789
|
||||
silesia.tar, multithreaded with advanced params, old streaming, 12022046
|
||||
github, level -5, old streaming, 205285
|
||||
github, level -5 with dict, old streaming, 46718
|
||||
github, level -3, old streaming, 190643
|
||||
github, level -3 with dict, old streaming, 45395
|
||||
github, level -1, old streaming, 175568
|
||||
github, level -1 with dict, old streaming, 43170
|
||||
github, level 0, old streaming, 136397
|
||||
github, level 0 with dict, old streaming, 41170
|
||||
github, level 1, old streaming, 142450
|
||||
github, level 1 with dict, old streaming, 41682
|
||||
github, level 3, old streaming, 136397
|
||||
github, level 3 with dict, old streaming, 41170
|
||||
github, level 4, old streaming, 136144
|
||||
github, level 4 with dict, old streaming, 41306
|
||||
github, level 5, old streaming, 135106
|
||||
github, level 5 with dict, old streaming, 38938
|
||||
github, level 6, old streaming, 135108
|
||||
github, level 6 with dict, old streaming, 38632
|
||||
github, level 7, old streaming, 135108
|
||||
github, level 7 with dict, old streaming, 38766
|
||||
github, level 9, old streaming, 135108
|
||||
github, level 9 with dict, old streaming, 39326
|
||||
github, level 13, old streaming, 133717
|
||||
github, level 13 with dict, old streaming, 39716
|
||||
github, level 16, old streaming, 133717
|
||||
github, level 16 with dict, old streaming, 37577
|
||||
github, level 19, old streaming, 133717
|
||||
github, level 19 with dict, old streaming, 37576
|
||||
github, no source size, old streaming, 141003
|
||||
github, long distance mode, old streaming, 412933
|
||||
github, multithreaded, old streaming, 412933
|
||||
github, multithreaded long distance mode, old streaming, 412933
|
||||
github, small window log, old streaming, 412933
|
||||
github, small hash log, old streaming, 412933
|
||||
github, small chain log, old streaming, 412933
|
||||
github, explicit params, old streaming, 412933
|
||||
github, uncompressed literals, old streaming, 136397
|
||||
github, uncompressed literals optimal, old streaming, 133717
|
||||
github, huffman literals, old streaming, 175568
|
||||
github, multithreaded with advanced params, old streaming, 412933
|
||||
silesia, level -5, old streaming advanced, 6882466
|
||||
silesia, level -3, old streaming advanced, 6568358
|
||||
silesia, level -1, old streaming advanced, 6183385
|
||||
silesia, level 0, old streaming advanced, 4862377
|
||||
silesia, level 1, old streaming advanced, 5314109
|
||||
silesia, level 3, old streaming advanced, 4862377
|
||||
silesia, level 4, old streaming advanced, 4800629
|
||||
silesia, level 5, old streaming advanced, 4710178
|
||||
silesia, level 6, old streaming advanced, 4659996
|
||||
silesia, level 7, old streaming advanced, 4596234
|
||||
silesia, level 9, old streaming advanced, 4543862
|
||||
silesia, level 13, old streaming advanced, 4482073
|
||||
silesia, level 16, old streaming advanced, 4377391
|
||||
silesia, level 19, old streaming advanced, 4293262
|
||||
silesia, no source size, old streaming advanced, 4862341
|
||||
silesia, long distance mode, old streaming advanced, 12000408
|
||||
silesia, multithreaded, old streaming advanced, 12000408
|
||||
silesia, multithreaded long distance mode, old streaming advanced, 12000408
|
||||
silesia, small window log, old streaming advanced, 12000408
|
||||
silesia, small hash log, old streaming advanced, 12000408
|
||||
silesia, small chain log, old streaming advanced, 12000408
|
||||
silesia, explicit params, old streaming advanced, 12000408
|
||||
silesia, uncompressed literals, old streaming advanced, 4862377
|
||||
silesia, uncompressed literals optimal, old streaming advanced, 4293262
|
||||
silesia, huffman literals, old streaming advanced, 6183385
|
||||
silesia, multithreaded with advanced params, old streaming advanced, 12000408
|
||||
silesia.tar, level -5, old streaming advanced, 6982738
|
||||
silesia.tar, level -3, old streaming advanced, 6641264
|
||||
silesia.tar, level -1, old streaming advanced, 6190789
|
||||
silesia.tar, level 0, old streaming advanced, 4875010
|
||||
silesia.tar, level 1, old streaming advanced, 5336879
|
||||
silesia.tar, level 3, old streaming advanced, 4875010
|
||||
silesia.tar, level 4, old streaming advanced, 4813507
|
||||
silesia.tar, level 5, old streaming advanced, 4722240
|
||||
silesia.tar, level 6, old streaming advanced, 4672203
|
||||
silesia.tar, level 7, old streaming advanced, 4606658
|
||||
silesia.tar, level 9, old streaming advanced, 4554105
|
||||
silesia.tar, level 13, old streaming advanced, 4491703
|
||||
silesia.tar, level 16, old streaming advanced, 4381277
|
||||
silesia.tar, level 19, old streaming advanced, 4281514
|
||||
silesia.tar, no source size, old streaming advanced, 4875006
|
||||
silesia.tar, long distance mode, old streaming advanced, 12022046
|
||||
silesia.tar, multithreaded, old streaming advanced, 12022046
|
||||
silesia.tar, multithreaded long distance mode, old streaming advanced, 12022046
|
||||
silesia.tar, small window log, old streaming advanced, 12022046
|
||||
silesia.tar, small hash log, old streaming advanced, 12022046
|
||||
silesia.tar, small chain log, old streaming advanced, 12022046
|
||||
silesia.tar, explicit params, old streaming advanced, 12022046
|
||||
silesia.tar, uncompressed literals, old streaming advanced, 4875010
|
||||
silesia.tar, uncompressed literals optimal, old streaming advanced, 4281514
|
||||
silesia.tar, huffman literals, old streaming advanced, 6190789
|
||||
silesia.tar, multithreaded with advanced params, old streaming advanced, 12022046
|
||||
github, level -5, old streaming advanced, 205285
|
||||
github, level -5 with dict, old streaming advanced, 46718
|
||||
github, level -3, old streaming advanced, 190643
|
||||
github, level -3 with dict, old streaming advanced, 45395
|
||||
github, level -1, old streaming advanced, 175568
|
||||
github, level -1 with dict, old streaming advanced, 43170
|
||||
github, level 0, old streaming advanced, 136397
|
||||
github, level 0 with dict, old streaming advanced, 41170
|
||||
github, level 1, old streaming advanced, 142450
|
||||
github, level 1 with dict, old streaming advanced, 41682
|
||||
github, level 3, old streaming advanced, 136397
|
||||
github, level 3 with dict, old streaming advanced, 41170
|
||||
github, level 4, old streaming advanced, 136144
|
||||
github, level 4 with dict, old streaming advanced, 41306
|
||||
github, level 5, old streaming advanced, 135106
|
||||
github, level 5 with dict, old streaming advanced, 38938
|
||||
github, level 6, old streaming advanced, 135108
|
||||
github, level 6 with dict, old streaming advanced, 38632
|
||||
github, level 7, old streaming advanced, 135108
|
||||
github, level 7 with dict, old streaming advanced, 38766
|
||||
github, level 9, old streaming advanced, 135108
|
||||
github, level 9 with dict, old streaming advanced, 39326
|
||||
github, level 13, old streaming advanced, 133717
|
||||
github, level 13 with dict, old streaming advanced, 39716
|
||||
github, level 16, old streaming advanced, 133717
|
||||
github, level 16 with dict, old streaming advanced, 37577
|
||||
github, level 19, old streaming advanced, 133717
|
||||
github, level 19 with dict, old streaming advanced, 37576
|
||||
github, no source size, old streaming advanced, 141003
|
||||
github, long distance mode, old streaming advanced, 412933
|
||||
github, multithreaded, old streaming advanced, 412933
|
||||
github, multithreaded long distance mode, old streaming advanced, 412933
|
||||
github, small window log, old streaming advanced, 412933
|
||||
github, small hash log, old streaming advanced, 412933
|
||||
github, small chain log, old streaming advanced, 412933
|
||||
github, explicit params, old streaming advanced, 412933
|
||||
github, uncompressed literals, old streaming advanced, 136397
|
||||
github, uncompressed literals optimal, old streaming advanced, 133717
|
||||
github, huffman literals, old streaming advanced, 175568
|
||||
github, multithreaded with advanced params, old streaming advanced, 412933
|
||||
silesia, level -5, old streaming cdcit, 6882466
|
||||
silesia, level -3, old streaming cdcit, 6568358
|
||||
silesia, level -1, old streaming cdcit, 6183385
|
||||
silesia, level 0, old streaming cdcit, 4862377
|
||||
silesia, level 1, old streaming cdcit, 5314109
|
||||
silesia, level 3, old streaming cdcit, 4862377
|
||||
silesia, level 4, old streaming cdcit, 4800629
|
||||
silesia, level 5, old streaming cdcit, 4710178
|
||||
silesia, level 6, old streaming cdcit, 4659996
|
||||
silesia, level 7, old streaming cdcit, 4596234
|
||||
silesia, level 9, old streaming cdcit, 4543862
|
||||
silesia, level 13, old streaming cdcit, 4482073
|
||||
silesia, level 16, old streaming cdcit, 4377391
|
||||
silesia, level 19, old streaming cdcit, 4293262
|
||||
silesia, no source size, old streaming cdcit, 4862341
|
||||
silesia, long distance mode, old streaming cdcit, 12000408
|
||||
silesia, multithreaded, old streaming cdcit, 12000408
|
||||
silesia, multithreaded long distance mode, old streaming cdcit, 12000408
|
||||
silesia, small window log, old streaming cdcit, 12000408
|
||||
silesia, small hash log, old streaming cdcit, 12000408
|
||||
silesia, small chain log, old streaming cdcit, 12000408
|
||||
silesia, explicit params, old streaming cdcit, 12000408
|
||||
silesia, uncompressed literals, old streaming cdcit, 4862377
|
||||
silesia, uncompressed literals optimal, old streaming cdcit, 4293262
|
||||
silesia, huffman literals, old streaming cdcit, 6183385
|
||||
silesia, multithreaded with advanced params, old streaming cdcit, 12000408
|
||||
silesia.tar, level -5, old streaming cdcit, 6982738
|
||||
silesia.tar, level -3, old streaming cdcit, 6641264
|
||||
silesia.tar, level -1, old streaming cdcit, 6190789
|
||||
silesia.tar, level 0, old streaming cdcit, 4875010
|
||||
silesia.tar, level 1, old streaming cdcit, 5336879
|
||||
silesia.tar, level 3, old streaming cdcit, 4875010
|
||||
silesia.tar, level 4, old streaming cdcit, 4813507
|
||||
silesia.tar, level 5, old streaming cdcit, 4722240
|
||||
silesia.tar, level 6, old streaming cdcit, 4672203
|
||||
silesia.tar, level 7, old streaming cdcit, 4606658
|
||||
silesia.tar, level 9, old streaming cdcit, 4554105
|
||||
silesia.tar, level 13, old streaming cdcit, 4491703
|
||||
silesia.tar, level 16, old streaming cdcit, 4381277
|
||||
silesia.tar, level 19, old streaming cdcit, 4281514
|
||||
silesia.tar, no source size, old streaming cdcit, 4875006
|
||||
silesia.tar, long distance mode, old streaming cdcit, 12022046
|
||||
silesia.tar, multithreaded, old streaming cdcit, 12022046
|
||||
silesia.tar, multithreaded long distance mode, old streaming cdcit, 12022046
|
||||
silesia.tar, small window log, old streaming cdcit, 12022046
|
||||
silesia.tar, small hash log, old streaming cdcit, 12022046
|
||||
silesia.tar, small chain log, old streaming cdcit, 12022046
|
||||
silesia.tar, explicit params, old streaming cdcit, 12022046
|
||||
silesia.tar, uncompressed literals, old streaming cdcit, 4875010
|
||||
silesia.tar, uncompressed literals optimal, old streaming cdcit, 4281514
|
||||
silesia.tar, huffman literals, old streaming cdcit, 6190789
|
||||
silesia.tar, multithreaded with advanced params, old streaming cdcit, 12022046
|
||||
github, level -5, old streaming cdcit, 205285
|
||||
github, level -5 with dict, old streaming cdcit, 46718
|
||||
github, level -3, old streaming cdcit, 190643
|
||||
github, level -3 with dict, old streaming cdcit, 45395
|
||||
github, level -1, old streaming cdcit, 175568
|
||||
github, level -1 with dict, old streaming cdcit, 43170
|
||||
github, level 0, old streaming cdcit, 136397
|
||||
github, level 0 with dict, old streaming cdcit, 41170
|
||||
github, level 1, old streaming cdcit, 142450
|
||||
github, level 1 with dict, old streaming cdcit, 41682
|
||||
github, level 3, old streaming cdcit, 136397
|
||||
github, level 3 with dict, old streaming cdcit, 41170
|
||||
github, level 4, old streaming cdcit, 136144
|
||||
github, level 4 with dict, old streaming cdcit, 41306
|
||||
github, level 5, old streaming cdcit, 135106
|
||||
github, level 5 with dict, old streaming cdcit, 38938
|
||||
github, level 6, old streaming cdcit, 135108
|
||||
github, level 6 with dict, old streaming cdcit, 38632
|
||||
github, level 7, old streaming cdcit, 135108
|
||||
github, level 7 with dict, old streaming cdcit, 38766
|
||||
github, level 9, old streaming cdcit, 135108
|
||||
github, level 9 with dict, old streaming cdcit, 39326
|
||||
github, level 13, old streaming cdcit, 133717
|
||||
github, level 13 with dict, old streaming cdcit, 39716
|
||||
github, level 16, old streaming cdcit, 133717
|
||||
github, level 16 with dict, old streaming cdcit, 37577
|
||||
github, level 19, old streaming cdcit, 133717
|
||||
github, level 19 with dict, old streaming cdcit, 37576
|
||||
github, no source size, old streaming cdcit, 141003
|
||||
github, long distance mode, old streaming cdcit, 412933
|
||||
github, multithreaded, old streaming cdcit, 412933
|
||||
github, multithreaded long distance mode, old streaming cdcit, 412933
|
||||
github, small window log, old streaming cdcit, 412933
|
||||
github, small hash log, old streaming cdcit, 412933
|
||||
github, small chain log, old streaming cdcit, 412933
|
||||
github, explicit params, old streaming cdcit, 412933
|
||||
github, uncompressed literals, old streaming cdcit, 136397
|
||||
github, uncompressed literals optimal, old streaming cdcit, 133717
|
||||
github, huffman literals, old streaming cdcit, 175568
|
||||
github, multithreaded with advanced params, old streaming cdcit, 412933
|
||||
silesia, level -5, old streaming advanced cdict, 6882466
|
||||
silesia, level -3, old streaming advanced cdict, 6568358
|
||||
silesia, level -1, old streaming advanced cdict, 6183385
|
||||
silesia, level 0, old streaming advanced cdict, 4862377
|
||||
silesia, level 1, old streaming advanced cdict, 5314109
|
||||
silesia, level 3, old streaming advanced cdict, 4862377
|
||||
silesia, level 4, old streaming advanced cdict, 4800629
|
||||
silesia, level 5, old streaming advanced cdict, 4710178
|
||||
silesia, level 6, old streaming advanced cdict, 4659996
|
||||
silesia, level 7, old streaming advanced cdict, 4596234
|
||||
silesia, level 9, old streaming advanced cdict, 4543862
|
||||
silesia, level 13, old streaming advanced cdict, 4482073
|
||||
silesia, level 16, old streaming advanced cdict, 4377391
|
||||
silesia, level 19, old streaming advanced cdict, 4293262
|
||||
silesia, no source size, old streaming advanced cdict, 4862341
|
||||
silesia, long distance mode, old streaming advanced cdict, 12000408
|
||||
silesia, multithreaded, old streaming advanced cdict, 12000408
|
||||
silesia, multithreaded long distance mode, old streaming advanced cdict, 12000408
|
||||
silesia, small window log, old streaming advanced cdict, 12000408
|
||||
silesia, small hash log, old streaming advanced cdict, 12000408
|
||||
silesia, small chain log, old streaming advanced cdict, 12000408
|
||||
silesia, explicit params, old streaming advanced cdict, 12000408
|
||||
silesia, uncompressed literals, old streaming advanced cdict, 4862377
|
||||
silesia, uncompressed literals optimal, old streaming advanced cdict, 4293262
|
||||
silesia, huffman literals, old streaming advanced cdict, 6183385
|
||||
silesia, multithreaded with advanced params, old streaming advanced cdict, 12000408
|
||||
silesia.tar, level -5, old streaming advanced cdict, 6982738
|
||||
silesia.tar, level -3, old streaming advanced cdict, 6641264
|
||||
silesia.tar, level -1, old streaming advanced cdict, 6190789
|
||||
silesia.tar, level 0, old streaming advanced cdict, 4875010
|
||||
silesia.tar, level 1, old streaming advanced cdict, 5336879
|
||||
silesia.tar, level 3, old streaming advanced cdict, 4875010
|
||||
silesia.tar, level 4, old streaming advanced cdict, 4813507
|
||||
silesia.tar, level 5, old streaming advanced cdict, 4722240
|
||||
silesia.tar, level 6, old streaming advanced cdict, 4672203
|
||||
silesia.tar, level 7, old streaming advanced cdict, 4606658
|
||||
silesia.tar, level 9, old streaming advanced cdict, 4554105
|
||||
silesia.tar, level 13, old streaming advanced cdict, 4491703
|
||||
silesia.tar, level 16, old streaming advanced cdict, 4381277
|
||||
silesia.tar, level 19, old streaming advanced cdict, 4281514
|
||||
silesia.tar, no source size, old streaming advanced cdict, 4875006
|
||||
silesia.tar, long distance mode, old streaming advanced cdict, 12022046
|
||||
silesia.tar, multithreaded, old streaming advanced cdict, 12022046
|
||||
silesia.tar, multithreaded long distance mode, old streaming advanced cdict, 12022046
|
||||
silesia.tar, small window log, old streaming advanced cdict, 12022046
|
||||
silesia.tar, small hash log, old streaming advanced cdict, 12022046
|
||||
silesia.tar, small chain log, old streaming advanced cdict, 12022046
|
||||
silesia.tar, explicit params, old streaming advanced cdict, 12022046
|
||||
silesia.tar, uncompressed literals, old streaming advanced cdict, 4875010
|
||||
silesia.tar, uncompressed literals optimal, old streaming advanced cdict, 4281514
|
||||
silesia.tar, huffman literals, old streaming advanced cdict, 6190789
|
||||
silesia.tar, multithreaded with advanced params, old streaming advanced cdict, 12022046
|
||||
github, level -5, old streaming advanced cdict, 205285
|
||||
github, level -5 with dict, old streaming advanced cdict, 46718
|
||||
github, level -3, old streaming advanced cdict, 190643
|
||||
github, level -3 with dict, old streaming advanced cdict, 45395
|
||||
github, level -1, old streaming advanced cdict, 175568
|
||||
github, level -1 with dict, old streaming advanced cdict, 43170
|
||||
github, level 0, old streaming advanced cdict, 136397
|
||||
github, level 0 with dict, old streaming advanced cdict, 41170
|
||||
github, level 1, old streaming advanced cdict, 142450
|
||||
github, level 1 with dict, old streaming advanced cdict, 41682
|
||||
github, level 3, old streaming advanced cdict, 136397
|
||||
github, level 3 with dict, old streaming advanced cdict, 41170
|
||||
github, level 4, old streaming advanced cdict, 136144
|
||||
github, level 4 with dict, old streaming advanced cdict, 41306
|
||||
github, level 5, old streaming advanced cdict, 135106
|
||||
github, level 5 with dict, old streaming advanced cdict, 38938
|
||||
github, level 6, old streaming advanced cdict, 135108
|
||||
github, level 6 with dict, old streaming advanced cdict, 38632
|
||||
github, level 7, old streaming advanced cdict, 135108
|
||||
github, level 7 with dict, old streaming advanced cdict, 38766
|
||||
github, level 9, old streaming advanced cdict, 135108
|
||||
github, level 9 with dict, old streaming advanced cdict, 39326
|
||||
github, level 13, old streaming advanced cdict, 133717
|
||||
github, level 13 with dict, old streaming advanced cdict, 39716
|
||||
github, level 16, old streaming advanced cdict, 133717
|
||||
github, level 16 with dict, old streaming advanced cdict, 37577
|
||||
github, level 19, old streaming advanced cdict, 133717
|
||||
github, level 19 with dict, old streaming advanced cdict, 37576
|
||||
github, no source size, old streaming advanced cdict, 141003
|
||||
github, long distance mode, old streaming advanced cdict, 412933
|
||||
github, multithreaded, old streaming advanced cdict, 412933
|
||||
github, multithreaded long distance mode, old streaming advanced cdict, 412933
|
||||
github, small window log, old streaming advanced cdict, 412933
|
||||
github, small hash log, old streaming advanced cdict, 412933
|
||||
github, small chain log, old streaming advanced cdict, 412933
|
||||
github, explicit params, old streaming advanced cdict, 412933
|
||||
github, uncompressed literals, old streaming advanced cdict, 136397
|
||||
github, uncompressed literals optimal, old streaming advanced cdict, 133717
|
||||
github, huffman literals, old streaming advanced cdict, 175568
|
||||
github, multithreaded with advanced params, old streaming advanced cdict, 412933
|
||||
|
||||
|
@@ -93,9 +93,9 @@ static size_t cctxParamRoundTripTest(void* resultBuff, size_t resultBuffCapacity
|
||||
int const cLevel = h32 % maxClevel;
|
||||
|
||||
/* Set parameters */
|
||||
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_compressionLevel, cLevel) );
|
||||
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_nbWorkers, 2) );
|
||||
CHECK_Z( ZSTD_CCtxParam_setParameter(cctxParams, ZSTD_c_overlapLog, 5) );
|
||||
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_compressionLevel, cLevel) );
|
||||
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_nbWorkers, 2) );
|
||||
CHECK_Z( ZSTD_CCtxParams_setParameter(cctxParams, ZSTD_c_overlapLog, 5) );
|
||||
|
||||
|
||||
/* Apply parameters */
|
||||
|
||||
@@ -31,6 +31,7 @@ static const void *symbols[] = {
|
||||
&ZSTD_getFrameContentSize,
|
||||
&ZSTD_maxCLevel,
|
||||
&ZSTD_compressBound,
|
||||
&ZSTD_decompressBound,
|
||||
&ZSTD_isError,
|
||||
&ZSTD_getErrorName,
|
||||
&ZSTD_createCCtx,
|
||||
|
||||
+24
-17
@@ -344,6 +344,20 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
DISPLAYLEVEL(3, "OK (%u bytes) \n", (unsigned)(cstreamSize + cdictSize));
|
||||
}
|
||||
|
||||
/* context size functions */
|
||||
DISPLAYLEVEL(3, "test%3i : estimate CStream size using CCtxParams : ", testNb++);
|
||||
{ ZSTD_CCtx_params* const params = ZSTD_createCCtxParams();
|
||||
size_t cstreamSize, cctxSize;
|
||||
CHECK_Z( ZSTD_CCtxParams_setParameter(params, ZSTD_c_compressionLevel, 19) );
|
||||
cstreamSize = ZSTD_estimateCStreamSize_usingCCtxParams(params);
|
||||
CHECK_Z(cstreamSize);
|
||||
cctxSize = ZSTD_estimateCCtxSize_usingCCtxParams(params);
|
||||
CHECK_Z(cctxSize);
|
||||
if (cstreamSize <= cctxSize + 2 * ZSTD_BLOCKSIZE_MAX) goto _output_error;
|
||||
ZSTD_freeCCtxParams(params);
|
||||
DISPLAYLEVEL(3, "OK \n");
|
||||
}
|
||||
|
||||
DISPLAYLEVEL(3, "test%3i : check actual CStream size : ", testNb++);
|
||||
{ size_t const s = ZSTD_sizeof_CStream(zc);
|
||||
if (ZSTD_isError(s)) goto _output_error;
|
||||
@@ -495,7 +509,7 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
|
||||
/* _srcSize compression test */
|
||||
DISPLAYLEVEL(3, "test%3i : compress_srcSize %u bytes : ", testNb++, COMPRESSIBLE_NOISE_LENGTH);
|
||||
ZSTD_initCStream_srcSize(zc, 1, CNBufferSize);
|
||||
CHECK_Z( ZSTD_initCStream_srcSize(zc, 1, CNBufferSize) );
|
||||
outBuff.dst = (char*)(compressedBuffer);
|
||||
outBuff.size = compressedBufferSize;
|
||||
outBuff.pos = 0;
|
||||
@@ -503,11 +517,14 @@ static int basicUnitTests(U32 seed, double compressibility)
|
||||
inBuff.size = CNBufferSize;
|
||||
inBuff.pos = 0;
|
||||
CHECK_Z( ZSTD_compressStream(zc, &outBuff, &inBuff) );
|
||||
if (inBuff.pos != inBuff.size) goto _output_error; /* entire input should be consumed */
|
||||
{ size_t const r = ZSTD_endStream(zc, &outBuff);
|
||||
if (r != 0) goto _output_error; } /* error, or some data not flushed */
|
||||
{ unsigned long long origSize = ZSTD_findDecompressedSize(outBuff.dst, outBuff.pos);
|
||||
if ((size_t)origSize != CNBufferSize) goto _output_error; } /* exact original size must be present */
|
||||
CHECK(inBuff.pos != inBuff.size, "Entire input should be consumed");
|
||||
{ size_t const r = ZSTD_endStream(zc, &outBuff);
|
||||
CHECK(r != 0, "Error or some data not flushed (ret=%zu)", r);
|
||||
}
|
||||
{ unsigned long long origSize = ZSTD_findDecompressedSize(outBuff.dst, outBuff.pos);
|
||||
CHECK(origSize == ZSTD_CONTENTSIZE_UNKNOWN, "Unknown!");
|
||||
CHECK((size_t)origSize != CNBufferSize, "Exact original size must be present (got %llu)", origSize);
|
||||
}
|
||||
DISPLAYLEVEL(3, "OK (%u bytes : %.2f%%)\n", (unsigned)cSize, (double)cSize/COMPRESSIBLE_NOISE_LENGTH*100);
|
||||
|
||||
/* wrong _srcSize compression test */
|
||||
@@ -1703,7 +1720,7 @@ static size_t setCCtxParameter(ZSTD_CCtx* zc, ZSTD_CCtx_params* cctxParams,
|
||||
int useOpaqueAPI)
|
||||
{
|
||||
if (useOpaqueAPI) {
|
||||
return ZSTD_CCtxParam_setParameter(cctxParams, param, value);
|
||||
return ZSTD_CCtxParams_setParameter(cctxParams, param, value);
|
||||
} else {
|
||||
return ZSTD_CCtx_setParameter(zc, param, value);
|
||||
}
|
||||
@@ -1930,16 +1947,6 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
|
||||
} else {
|
||||
CHECK_Z( ZSTD_CCtx_loadDictionary_byReference(zc, dict, dictSize) );
|
||||
}
|
||||
if (dict && dictSize) {
|
||||
/* test that compression parameters are rejected (correctly) after loading a non-NULL dictionary */
|
||||
if (opaqueAPI) {
|
||||
size_t const setError = ZSTD_CCtx_setParametersUsingCCtxParams(zc, cctxParams);
|
||||
CHECK(!ZSTD_isError(setError), "ZSTD_CCtx_setParametersUsingCCtxParams should have failed");
|
||||
} else {
|
||||
size_t const setError = ZSTD_CCtx_setParameter(zc, ZSTD_c_windowLog, cParams.windowLog-1);
|
||||
CHECK(!ZSTD_isError(setError), "ZSTD_CCtx_setParameter should have failed");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
CHECK_Z( ZSTD_CCtx_refPrefix(zc, dict, dictSize) );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user