Update travis config for fuzzer builds

This commit is contained in:
Bhargava Shastry
2019-07-27 10:57:49 +02:00
parent d71375bf8a
commit a58d4b03c5
3 changed files with 23 additions and 16 deletions

View File

@@ -70,9 +70,16 @@ install:
before_script: before_script:
- mkdir -p build && cd build - mkdir -p build && cd build
- cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE - if [ "$CXX" = "clang++-8"; then
# Build UBSan binary
export CXXFLAGS="-fsanitize=undefined -fsanitize-coverage=bb,trace-pc-guard";
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE
-DSNAPPY_REQUIRE_${CPU_LEVEL}=ON -DSNAPPY_REQUIRE_${CPU_LEVEL}=ON
-DSNAPPY_BUILD_FUZZERS=ON -DSNAPPY_BUILD_FUZZERS=ON;
else
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE
-DSNAPPY_REQUIRE_${CPU_LEVEL}=ON;
fi
- cmake --build . - cmake --build .
- cd .. - cd ..

View File

@@ -53,14 +53,14 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
assert(compressed_len == compressed_out.size()); assert(compressed_len == compressed_out.size());
assert(compressed_len <= snappy::MaxCompressedLength(input.size())); assert(compressed_len <= snappy::MaxCompressedLength(input.size()));
assert(snappy::IsValidCompressedBuffer( assert(snappy::IsValidCompressedBuffer(
compressed_out.data(), compressed_out.data(),
compressed_out.size())); compressed_out.size()));
size_t uncompressed_len = 0; size_t uncompressed_len = 0;
bool getcomp_len_success = snappy::GetUncompressedLength( bool getcomp_len_success = snappy::GetUncompressedLength(
compressed_out.data(), compressed_out.data(),
compressed_out.size(), compressed_out.size(),
&uncompressed_len); &uncompressed_len);
// Check that GetUncompressedLength() does not return a very large // Check that GetUncompressedLength() does not return a very large
// value (1 MB) on success. // value (1 MB) on success.
assert(!getcomp_len_success || uncompressed_len < (1 << 20)); assert(!getcomp_len_success || uncompressed_len < (1 << 20));
@@ -68,9 +68,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
// Uncompress // Uncompress
string uncompressed_out; string uncompressed_out;
bool uncompress_success = snappy::Uncompress( bool uncompress_success = snappy::Uncompress(
compressed_out.data(), compressed_out.data(),
compressed_out.size(), compressed_out.size(),
&uncompressed_out); &uncompressed_out);
assert(uncompress_success); assert(uncompress_success);
assert(input == uncompressed_out); assert(input == uncompressed_out);

View File

@@ -45,9 +45,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
size_t uncompressed_len = 0; size_t uncompressed_len = 0;
bool getcomp_len_success = snappy::GetUncompressedLength( bool getcomp_len_success = snappy::GetUncompressedLength(
input.data(), input.data(),
input.size(), input.size(),
&uncompressed_len); &uncompressed_len);
// Check that GetUncompressedLength() does not return a very large // Check that GetUncompressedLength() does not return a very large
// value (1 MB) on success. // value (1 MB) on success.
assert(!getcomp_len_success || uncompressed_len < (1 << 20)); assert(!getcomp_len_success || uncompressed_len < (1 << 20));
@@ -55,9 +55,9 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
// Uncompress // Uncompress
string uncompressed_out; string uncompressed_out;
bool uncompress_success = snappy::Uncompress( bool uncompress_success = snappy::Uncompress(
input.data(), input.data(),
input.size(), input.size(),
&uncompressed_out); &uncompressed_out);
assert(uncompress_success); assert(uncompress_success);
return 0; return 0;