test-decodecorpus-cli: decodecorpus
@echo "\n ---- decodecorpus basic cli tests ----"
- mkdir tests
- ./decodecorpus -n5 -otests -ptests
- cd testdir
- zstd -d z000000.zst -D dictionary -o tmp0
- zstd -d z000001.zst -D dictionary -o tmp1
- zstd -d z000002.zst -D dictionary -o tmp2
- zstd -d z000003.zst -D dictionary -o tmp3
- zstd -d z000004.zst -D dictionary -o tmp4
- diff z000000 tmp0
- diff z000001 tmp1
- diff z000002 tmp2
- diff z000003 tmp3
- diff z000004 tmp4
- cd ..
- rm -rf testdir
+ @mkdir testdir
+ ./decodecorpus -n5 -otestdir -ptestdir
+ @cd testdir \
+ zstd -d z000000.zst -o tmp0 \
+ zstd -d z000001.zst -o tmp1 \
+ zstd -d z000002.zst -o tmp2 \
+ zstd -d z000003.zst -o tmp3 \
+ zstd -d z000004.zst -o tmp4 \
+ diff z000000 tmp0 \
+ diff z000001 tmp1 \
+ diff z000002 tmp2 \
+ diff z000003 tmp3 \
+ diff z000004 tmp4 \
+ @rm ./* \
+ @cd ..
+
+ ./decodecorpus -n5 -otestdir -ptestdir --use-dict=1MB
+ @cd testdir \
+ zstd -d z000000.zst -D dictionary -o tmp0 \
+ zstd -d z000001.zst -D dictionary -o tmp1 \
+ zstd -d z000002.zst -D dictionary -o tmp2 \
+ zstd -d z000003.zst -D dictionary -o tmp3 \
+ zstd -d z000004.zst -D dictionary -o tmp4 \
+ diff z000000 tmp0 \
+ diff z000001 tmp1 \
+ diff z000002 tmp2 \
+ diff z000003 tmp3 \
+ diff z000004 tmp4 \
+ @cd ..
+ @rm -rf testdir
test-pool: pool
$(QEMU_SYS) ./pool
}
DISPLAYLEVEL(5, " total match lengths: %u\n", (U32)remainingMatch);
-
for (i = 0; i < numSequences; i++) {
/* Generate match and literal lengths by exponential distribution to
* ensure nice numbers */
1;
if (info.useDict && (RAND(seed) & 1)) {
/* need to occasionally generate offsets that go past the start */
- U32 const lenPastStart = RAND(seed) % info.dictContentSize + 1;
+ U32 const lenPastStart = (RAND(seed) % info.dictContentSize) + 1;
offset = ((BYTE*)srcPtr - (BYTE*)frame->srcStart)+lenPastStart;
+ if (lenPastStart > frame->header.windowSize) {
+ matchLen = MIN(matchLen, frame->header.windowSize);
+ }
+ if (offset > frame->header.windowSize) {
+ U32 const matchLenBound = MIN(frame->header.windowSize, lenPastStart);
+ matchLen = MIN(matchLen, matchLenBound);
+ }
}
offsetCode = offset + ZSTD_REP_MOVE;
repIndex = 2;