summaryrefslogtreecommitdiffstats
path: root/other-licenses/snappy/src/snappy_compress_fuzzer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'other-licenses/snappy/src/snappy_compress_fuzzer.cc')
-rw-r--r--other-licenses/snappy/src/snappy_compress_fuzzer.cc32
1 files changed, 18 insertions, 14 deletions
diff --git a/other-licenses/snappy/src/snappy_compress_fuzzer.cc b/other-licenses/snappy/src/snappy_compress_fuzzer.cc
index 1d4429a8c1..93254a28b1 100644
--- a/other-licenses/snappy/src/snappy_compress_fuzzer.cc
+++ b/other-licenses/snappy/src/snappy_compress_fuzzer.cc
@@ -39,22 +39,26 @@
// Entry point for LibFuzzer.
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {
std::string input(reinterpret_cast<const char*>(data), size);
+ for (int level = snappy::CompressionOptions::MinCompressionLevel();
+ level <= snappy::CompressionOptions::MaxCompressionLevel(); ++level) {
+ std::string compressed;
+ size_t compressed_size =
+ snappy::Compress(input.data(), input.size(), &compressed,
+ snappy::CompressionOptions{/*level=*/level});
- std::string compressed;
- size_t compressed_size =
- snappy::Compress(input.data(), input.size(), &compressed);
+ (void)compressed_size; // Variable only used in debug builds.
+ assert(compressed_size == compressed.size());
+ assert(compressed.size() <= snappy::MaxCompressedLength(input.size()));
+ assert(
+ snappy::IsValidCompressedBuffer(compressed.data(), compressed.size()));
- (void)compressed_size; // Variable only used in debug builds.
- assert(compressed_size == compressed.size());
- assert(compressed.size() <= snappy::MaxCompressedLength(input.size()));
- assert(snappy::IsValidCompressedBuffer(compressed.data(), compressed.size()));
+ std::string uncompressed_after_compress;
+ bool uncompress_succeeded = snappy::Uncompress(
+ compressed.data(), compressed.size(), &uncompressed_after_compress);
- std::string uncompressed_after_compress;
- bool uncompress_succeeded = snappy::Uncompress(
- compressed.data(), compressed.size(), &uncompressed_after_compress);
-
- (void)uncompress_succeeded; // Variable only used in debug builds.
- assert(uncompress_succeeded);
- assert(input == uncompressed_after_compress);
+ (void)uncompress_succeeded; // Variable only used in debug builds.
+ assert(uncompress_succeeded);
+ assert(input == uncompressed_after_compress);
+ }
return 0;
}