[libfuzzer] replacing unittest for truncate_units with functional test.

Differential Revision: http://reviews.llvm.org/D20641

llvm-svn: 270755
This commit is contained in:
Mike Aizatsky 2016-05-25 21:00:17 +00:00
parent bfc1a469d5
commit e66846ab32
4 changed files with 22 additions and 22 deletions

View File

@ -18,6 +18,7 @@ set(Tests
CallerCalleeTest
CounterTest
CustomMutatorTest
EmptyTest
FourIndependentBranchesTest
FullCoverageSetTest
InitializeTest

View File

@ -0,0 +1,11 @@
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
// A fuzzer with empty target function.
#include <cstdint>
#include <cstdlib>
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
return 0;
}

View File

@ -13,10 +13,6 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
abort();
}
static int EmptyLLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
return 0;
}
TEST(Fuzzer, CrossOver) {
Random Rand(0);
MutationDispatcher MD(Rand);
@ -427,21 +423,3 @@ TEST(Corpus, Distribution) {
EXPECT_GT(Hist[i], TriesPerUnit / N / 3);
}
}
TEST(Corpus, TruncateUnits) {
Random Rand(0);
MutationDispatcher MD(Rand);
Fuzzer::FuzzingOptions Options;
Options.OutputCorpus = ""; // stops from writing new units.
Fuzzer Fuzz(EmptyLLVMFuzzerTestOneInput, MD, Options);
Fuzz.AddToCorpus(Unit(1024, static_cast<uint8_t>(1)));
Fuzz.ResetCoverage();
std::vector<Unit> NewCorpus;
Fuzz.TruncateUnits(&NewCorpus);
// New corpus should have a shorter unit.
EXPECT_EQ(1ul, NewCorpus.size());
EXPECT_EQ(1ul, NewCorpus[0].size());
}

View File

@ -0,0 +1,10 @@
# Test truncate_units option.
RUN: rm -rf FuzzerTruncateTestCORPUS
RUN: mkdir FuzzerTruncateTestCORPUS
RUN: echo "01234567890123456789012345678901234567890" > FuzzerTruncateTestCORPUS/unit1
# Simply running a fuzzer won't produce new results
RUN: LLVMFuzzer-EmptyTest -seed=1 -runs=100 -truncate_units=0 ./FuzzerTruncateTestCORPUS
# Truncating would create a new unit of length 1.
RUN: LLVMFuzzer-EmptyTest -seed=1 -runs=0 -truncate_units=1 ./FuzzerTruncateTestCORPUS
RUN: find FuzzerTruncateTestCORPUS/b6589fc6ab0dc82cf12099d1c2d40ab994e8410c
RUN: rm -rf FuzzerTruncateTestCORPUS