forked from OSchip/llvm-project
[libfuzzer] replacing unittest for truncate_units with functional test.
Differential Revision: http://reviews.llvm.org/D20641 llvm-svn: 270755
This commit is contained in:
parent
bfc1a469d5
commit
e66846ab32
|
@ -18,6 +18,7 @@ set(Tests
|
|||
CallerCalleeTest
|
||||
CounterTest
|
||||
CustomMutatorTest
|
||||
EmptyTest
|
||||
FourIndependentBranchesTest
|
||||
FullCoverageSetTest
|
||||
InitializeTest
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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());
|
||||
}
|
||||
|
|
|
@ -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
|
Loading…
Reference in New Issue