]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
Merge pull request #983 from terrelln/dict-wlog
authorYann Collet <Cyan4973@users.noreply.github.com>
Fri, 12 Jan 2018 15:47:43 +0000 (07:47 -0800)
committerGitHub <noreply@github.com>
Fri, 12 Jan 2018 15:47:43 +0000 (07:47 -0800)
Increase windowLog from CDict based on the srcSize when known

1  2 
lib/compress/zstd_compress.c
tests/fuzzer.c

Simple merge
diff --cc tests/fuzzer.c
index 3206d6e1117bca3b8aab4da05a667e22ff931a8d,21d7d21a38e6974ad870066397607a6fecb6db94..f9166c0cf366d12bcbe4124bb008071024ac3728
@@@ -1203,8 -1204,30 +1203,30 @@@ static int basicUnitTests(U32 seed, dou
      if (strcmp("Error (generic)", ZSTD_getErrorName((size_t)0-ZSTD_error_GENERIC)) != 0) goto _output_error;
      if (strcmp("Error (generic)", ZSTD_getErrorString(ZSTD_error_GENERIC)) != 0) goto _output_error;
      if (strcmp("No error detected", ZSTD_getErrorName(ZSTD_error_GENERIC)) != 0) goto _output_error;
 -    DISPLAYLEVEL(4, "OK \n");
 +    DISPLAYLEVEL(3, "OK \n");
  
+     DISPLAYLEVEL(4, "test%3i : testing ZSTD dictionary sizes : ", testNb++);
+     RDG_genBuffer(CNBuffer, CNBuffSize, compressibility, 0., seed);
+     {
+         size_t const size = MIN(128 KB, CNBuffSize);
+         ZSTD_CCtx* const cctx = ZSTD_createCCtx();
+         ZSTD_CDict* const lgCDict = ZSTD_createCDict(CNBuffer, size, 1);
+         ZSTD_CDict* const smCDict = ZSTD_createCDict(CNBuffer, 1 KB, 1);
+         ZSTD_frameHeader lgHeader;
+         ZSTD_frameHeader smHeader;
+         CHECK_Z(ZSTD_compress_usingCDict(cctx, compressedBuffer, compressedBufferSize, CNBuffer, size, lgCDict));
+         CHECK_Z(ZSTD_getFrameHeader(&lgHeader, compressedBuffer, compressedBufferSize));
+         CHECK_Z(ZSTD_compress_usingCDict(cctx, compressedBuffer, compressedBufferSize, CNBuffer, size, smCDict));
+         CHECK_Z(ZSTD_getFrameHeader(&smHeader, compressedBuffer, compressedBufferSize));
+         if (lgHeader.windowSize != smHeader.windowSize) goto _output_error;
+         ZSTD_freeCDict(smCDict);
+         ZSTD_freeCDict(lgCDict);
+         ZSTD_freeCCtx(cctx);
+     }
  _end:
      free(CNBuffer);
      free(compressedBuffer);