added cli test for decodecorpus inside tests/Makefile. Also changed calculation of offset
This commit is contained in:
+30
-15
@@ -342,21 +342,36 @@ test-decodecorpus: decodecorpus
|
|||||||
|
|
||||||
test-decodecorpus-cli: decodecorpus
|
test-decodecorpus-cli: decodecorpus
|
||||||
@echo "\n ---- decodecorpus basic cli tests ----"
|
@echo "\n ---- decodecorpus basic cli tests ----"
|
||||||
mkdir tests
|
@mkdir testdir
|
||||||
./decodecorpus -n5 -otests -ptests
|
./decodecorpus -n5 -otestdir -ptestdir
|
||||||
cd testdir
|
@cd testdir \
|
||||||
zstd -d z000000.zst -D dictionary -o tmp0
|
zstd -d z000000.zst -o tmp0 \
|
||||||
zstd -d z000001.zst -D dictionary -o tmp1
|
zstd -d z000001.zst -o tmp1 \
|
||||||
zstd -d z000002.zst -D dictionary -o tmp2
|
zstd -d z000002.zst -o tmp2 \
|
||||||
zstd -d z000003.zst -D dictionary -o tmp3
|
zstd -d z000003.zst -o tmp3 \
|
||||||
zstd -d z000004.zst -D dictionary -o tmp4
|
zstd -d z000004.zst -o tmp4 \
|
||||||
diff z000000 tmp0
|
diff z000000 tmp0 \
|
||||||
diff z000001 tmp1
|
diff z000001 tmp1 \
|
||||||
diff z000002 tmp2
|
diff z000002 tmp2 \
|
||||||
diff z000003 tmp3
|
diff z000003 tmp3 \
|
||||||
diff z000004 tmp4
|
diff z000004 tmp4 \
|
||||||
cd ..
|
@rm ./* \
|
||||||
rm -rf testdir
|
@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
|
test-pool: pool
|
||||||
$(QEMU_SYS) ./pool
|
$(QEMU_SYS) ./pool
|
||||||
|
|||||||
@@ -648,7 +648,6 @@ static U32 generateSequences(U32* seed, frame_t* frame, seqStore_t* seqStore,
|
|||||||
}
|
}
|
||||||
|
|
||||||
DISPLAYLEVEL(5, " total match lengths: %u\n", (U32)remainingMatch);
|
DISPLAYLEVEL(5, " total match lengths: %u\n", (U32)remainingMatch);
|
||||||
|
|
||||||
for (i = 0; i < numSequences; i++) {
|
for (i = 0; i < numSequences; i++) {
|
||||||
/* Generate match and literal lengths by exponential distribution to
|
/* Generate match and literal lengths by exponential distribution to
|
||||||
* ensure nice numbers */
|
* ensure nice numbers */
|
||||||
@@ -683,8 +682,15 @@ static U32 generateSequences(U32* seed, frame_t* frame, seqStore_t* seqStore,
|
|||||||
1;
|
1;
|
||||||
if (info.useDict && (RAND(seed) & 1)) {
|
if (info.useDict && (RAND(seed) & 1)) {
|
||||||
/* need to occasionally generate offsets that go past the start */
|
/* 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;
|
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;
|
offsetCode = offset + ZSTD_REP_MOVE;
|
||||||
repIndex = 2;
|
repIndex = 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user