Skip to content

Commit eefd670

Browse files
committed
Add Basic Tests for R/W Functions
1 parent 5fed1b2 commit eefd670

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

tests/fuzzer.c

+46
Original file line numberDiff line numberDiff line change
@@ -4392,6 +4392,52 @@ static int basicUnitTests(U32 const seed, double compressibility)
43924392
} } } } }
43934393
DISPLAYLEVEL(3, "OK \n");
43944394

4395+
DISPLAYLEVEL(3, "test%3i : check reading / writing DCZ header : ", testNb++);
4396+
{
4397+
size_t i;
4398+
size_t readResult;
4399+
size_t writeResult;
4400+
size_t dictSize = 256 KB;
4401+
4402+
for (i = 0; i < 100; i++) {
4403+
writeResult = ZSTD_writeHeaderForHTTPDCZ(
4404+
compressedBuffer, compressedBufferSize,
4405+
CNBuffer, i);
4406+
if (i >= 8) {
4407+
CHECK_Z(writeResult);
4408+
CHECK_EQ(writeResult, 40);
4409+
} else {
4410+
CHECK_EQ(ZSTD_getErrorCode(writeResult), ZSTD_error_dictionary_corrupted);
4411+
}
4412+
}
4413+
for (i = 0; i < 100; i++) {
4414+
writeResult = ZSTD_writeHeaderForHTTPDCZ(
4415+
compressedBuffer, i,
4416+
CNBuffer, dictSize);
4417+
if (i >= 40) {
4418+
CHECK_Z(writeResult);
4419+
CHECK_EQ(writeResult, 40);
4420+
} else {
4421+
CHECK_EQ(ZSTD_getErrorCode(writeResult), ZSTD_error_dstSize_tooSmall);
4422+
}
4423+
}
4424+
for (i = 0; i < 100; i++) {
4425+
readResult = ZSTD_readHeaderForHTTPDCZ_validateDictMatches(
4426+
compressedBuffer, i,
4427+
CNBuffer, dictSize);
4428+
if (i >= writeResult) {
4429+
CHECK_Z(readResult);
4430+
CHECK_EQ(readResult, 1);
4431+
} else {
4432+
CHECK_EQ(ZSTD_getErrorCode(readResult), ZSTD_error_srcSize_wrong);
4433+
}
4434+
}
4435+
CHECK_EQ(ZSTD_getErrorCode(ZSTD_readHeaderForHTTPDCZ_validateDictMatches(
4436+
compressedBuffer, writeResult,
4437+
CNBuffer, dictSize - 1)), ZSTD_error_dictionary_wrong);
4438+
}
4439+
DISPLAYLEVEL(3, "OK \n");
4440+
43954441
DISPLAYLEVEL(3, "test%3i : thread pool API tests : \n", testNb++)
43964442
{
43974443
int const threadPoolTestResult = threadPoolTests();

0 commit comments

Comments
 (0)