summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMike Aizatsky <aizatsky@chromium.org>2016-05-25 21:00:17 +0000
committerMike Aizatsky <aizatsky@chromium.org>2016-05-25 21:00:17 +0000
commite66846ab3208cf7451a969c3896066ee81452636 (patch)
tree8f29a524a7043620b46517aea6152b3d0333b766 /llvm/lib
parentbfc1a469d5f35cc182c79c9d1c9cb8b611849a72 (diff)
downloadbcm5719-llvm-e66846ab3208cf7451a969c3896066ee81452636.tar.gz
bcm5719-llvm-e66846ab3208cf7451a969c3896066ee81452636.zip
[libfuzzer] replacing unittest for truncate_units with functional test.
Differential Revision: http://reviews.llvm.org/D20641 llvm-svn: 270755
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Fuzzer/test/CMakeLists.txt1
-rw-r--r--llvm/lib/Fuzzer/test/EmptyTest.cpp11
-rw-r--r--llvm/lib/Fuzzer/test/FuzzerUnittest.cpp22
-rw-r--r--llvm/lib/Fuzzer/test/fuzzer-trunc.test10
4 files changed, 22 insertions, 22 deletions
diff --git a/llvm/lib/Fuzzer/test/CMakeLists.txt b/llvm/lib/Fuzzer/test/CMakeLists.txt
index a33f84b6e4a..7bba1d63a92 100644
--- a/llvm/lib/Fuzzer/test/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/CMakeLists.txt
@@ -18,6 +18,7 @@ set(Tests
CallerCalleeTest
CounterTest
CustomMutatorTest
+ EmptyTest
FourIndependentBranchesTest
FullCoverageSetTest
InitializeTest
diff --git a/llvm/lib/Fuzzer/test/EmptyTest.cpp b/llvm/lib/Fuzzer/test/EmptyTest.cpp
new file mode 100644
index 00000000000..5e843308fa5
--- /dev/null
+++ b/llvm/lib/Fuzzer/test/EmptyTest.cpp
@@ -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;
+}
diff --git a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
index 66e9285eb05..7b49f2f08e4 100644
--- a/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
+++ b/llvm/lib/Fuzzer/test/FuzzerUnittest.cpp
@@ -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());
-}
diff --git a/llvm/lib/Fuzzer/test/fuzzer-trunc.test b/llvm/lib/Fuzzer/test/fuzzer-trunc.test
new file mode 100644
index 00000000000..ebab7b863a0
--- /dev/null
+++ b/llvm/lib/Fuzzer/test/fuzzer-trunc.test
@@ -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
OpenPOWER on IntegriCloud