llvm-project/compiler-rt/test/fuzzer
Matt Morehouse 52fd169035 [libFuzzer] Report at most one crash per input.
Summary:
Fixes https://github.com/google/sanitizers/issues/788/, a deadlock
caused by multiple crashes happening at the same time.  Before printing
a crash report, we now test and set an atomic flag.  If the flag was
already set, the crash handler returns immediately.

Reviewers: kcc

Reviewed By: kcc

Subscribers: llvm-commits, kubamracek

Differential Revision: https://reviews.llvm.org/D46277

llvm-svn: 331310
2018-05-01 21:01:53 +00:00
..
unit
AFLDriverTest.cpp
AbsNegAndConstant64Test.cpp
AbsNegAndConstantTest.cpp
AccumulateAllocationsTest.cpp
AcquireCrashStateTest.cpp [libFuzzer] Report at most one crash per input. 2018-05-01 21:01:53 +00:00
BadStrcmpTest.cpp
BogusInitializeTest.cpp
BufferOverflowOnInput.cpp
CMakeLists.txt Reland "[libFuzzer] Support using libc++" 2018-01-17 20:39:14 +00:00
CallerCalleeTest.cpp
CleanseTest.cpp [NFC] fix trivial typos in comments 2018-01-22 07:51:37 +00:00
CounterTest.cpp
CustomCrossOverAndMutateTest.cpp
CustomCrossOverTest.cpp [libFuzzer] simplify CustomCrossOverTest even more 2017-09-07 05:33:05 +00:00
CustomMutatorTest.cpp
CxxStringEqTest.cpp
DSO1.cpp
DSO2.cpp
DSOTestExtra.cpp
DSOTestMain.cpp
DeepRecursionTest.cpp
DivTest.cpp
EmptyTest.cpp
EquivalenceATest.cpp
EquivalenceBTest.cpp
FlagsTest.cpp [libFuzzer] tweam use_feature_frequency to be less aggressive; run a dummy input before the seed corpus 2017-10-13 01:12:23 +00:00
FourIndependentBranchesTest.cpp
FullCoverageSetTest.cpp
GcSectionsTest.cpp [libFuzzer] add linux-specific test for gc-sections 2017-09-15 23:07:18 +00:00
InitializeTest.cpp [sanitizer-coverage] extend fsanitize-coverage=pc-table with flags for every PC 2017-08-25 19:29:47 +00:00
LargeTest.cpp
LeakTest.cpp [libFuzzer] Place volatile after pointer types. 2018-03-27 16:40:20 +00:00
LeakTimeoutTest.cpp
LoadTest.cpp
Memcmp64BytesTest.cpp
MemcmpTest.cpp
NotinstrumentedTest.cpp
NthRunCrashTest.cpp
NullDerefOnEmptyTest.cpp
NullDerefTest.cpp
OneHugeAllocTest.cpp
OutOfMemorySingleLargeMallocTest.cpp
OutOfMemoryTest.cpp
OverwriteInputTest.cpp
PrintFuncTest.cpp [libFuzzer] add -print_funcs=1 (on bey default): print newly discovered functions during fuzzing 2017-08-25 20:09:25 +00:00
RepeatedBytesTest.cpp
RepeatedMemcmp.cpp
ShrinkControlFlowSimpleTest.cpp
ShrinkControlFlowTest.cpp
ShrinkValueProfileTest.cpp
SignedIntOverflowTest.cpp
SimpleCmpTest.cpp [libFuzzer] Use OptForFuzzing attribute with -fsanitize=fuzzer. 2018-03-23 23:35:28 +00:00
SimpleDictionaryTest.cpp
SimpleHashTest.cpp
SimpleTest.cpp
SimpleThreadedTest.cpp
SingleByteInputTest.cpp
SingleMemcmpTest.cpp
SingleStrcmpTest.cpp
SingleStrncmpTest.cpp
SleepOneSecondTest.cpp [libFuzzer] handle SIGUSR1/SIGUSR2 and try to exit grafully on these signals 2017-11-09 20:30:19 +00:00
SpamyTest.cpp
StrcmpTest.cpp
StrncmpOOBTest.cpp
StrncmpTest.cpp
StrstrTest.cpp
SwapCmpTest.cpp [libFuzzer] Use OptForFuzzing attribute with -fsanitize=fuzzer. 2018-03-23 23:35:28 +00:00
Switch2Test.cpp
SwitchTest.cpp
TableLookupTest.cpp
ThreadedLeakTest.cpp [libFuzzer] Place volatile after pointer types. 2018-03-27 16:40:20 +00:00
ThreadedTest.cpp
TimeoutEmptyTest.cpp
TimeoutTest.cpp
TraceMallocTest.cpp
TraceMallocThreadedTest.cpp [libFuzzer] Place volatile after pointer types. 2018-03-27 16:40:20 +00:00
TwoDifferentBugsTest.cpp
acquire-crash-state.test [libFuzzer] Report at most one crash per input. 2018-05-01 21:01:53 +00:00
afl-driver-extra-stats.test
afl-driver-stderr.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
afl-driver.test
bad-strcmp.test
caller-callee.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
cleanse.test
coverage.test
cxxstring.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
deep-recursion.test [SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer 2017-08-30 22:49:31 +00:00
dict1.txt
disable-leaks.test
dump_coverage.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
equivalence-signals.test [libFuzzer] Disable equivalence-signals test on Darwin due to persistent failures 2018-03-21 17:55:36 +00:00
equivalence.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
exit-report.test
exit_on_src_pos.test [libFuzzer] Disable optimization for exit_on_src_pos.test. 2018-03-27 16:40:34 +00:00
extra-counters.test [LibFuzzer] Report when custom counters are available. 2018-04-20 06:46:19 +00:00
fprofile-instr-generate.test [libFuzzer] Disable experimental clang coverage support by default. 2017-10-05 22:41:03 +00:00
fuzzer-customcrossover.test [libFuzzer] trying to make a test more stable on Mac 2017-10-25 23:24:45 +00:00
fuzzer-customcrossoverandmutate.test
fuzzer-custommutator.test
fuzzer-dict.test
fuzzer-dirs.test [libFuzzer] Print a correct error message when a directory can't be 2018-04-06 18:15:24 +00:00
fuzzer-fdmask.test
fuzzer-finalstats.test
fuzzer-flags.test [libFuzzer] tweam use_feature_frequency to be less aggressive; run a dummy input before the seed corpus 2017-10-13 01:12:23 +00:00
fuzzer-leak.test [libFuzzer] Place volatile after pointer types. 2018-03-27 16:40:20 +00:00
fuzzer-oom-with-profile.test
fuzzer-oom.test [libFuzzer] add a flag -malloc_limit_mb 2017-12-01 22:12:04 +00:00
fuzzer-printcovpcs.test
fuzzer-runs.test
fuzzer-seed.test
fuzzer-segv.test
fuzzer-singleinputs.test
fuzzer-threaded.test
fuzzer-timeout.test
fuzzer-ubsan.test
fuzzer.test [libFuzzer] prepare tests for switching from -fsanitize-coverage=trace-pc-guard to -fsanitize-coverage=inline-8bit-counters 2017-08-25 20:20:46 +00:00
gc-sections.test [libFuzzer] add linux-specific test for gc-sections 2017-09-15 23:07:18 +00:00
hi.txt
inline-8bit-counters.test [libFuzzer] Enable 8-bit counters test on macOS 2017-09-01 17:13:26 +00:00
lit.cfg [libFuzzer] Use OptForFuzzing attribute with -fsanitize=fuzzer. 2018-03-23 23:35:28 +00:00
lit.site.cfg.in Reland "[libFuzzer] Support using libc++" 2018-01-17 20:39:14 +00:00
max-number-of-runs.test [libfuzzer] Compare TotalNumberOfRuns with MaxNumberOfRuns when testing a memory leak. 2017-09-12 02:01:54 +00:00
memcmp.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
memcmp64.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
merge-control-file.test [libFuzzer] add more tests for merge 2017-11-16 20:25:45 +00:00
merge-posix.test
merge-sigusr.test [libFuzzer] Make merge-sigusr.test work on Mac. 2017-11-16 23:06:17 +00:00
merge-summary.test
merge.test [libFuzzer] Fix flaky merge.test. 2017-11-17 00:11:12 +00:00
minimize_crash.test
minimize_two_crashes.test [libFuzzer] Disable optimization for exit_on_src_pos.test. 2018-03-27 16:40:34 +00:00
overwrite-input.test
print-func.test [libFuzzer] allow -print_funcs=N: N is the max number of new covered function printed 2017-08-28 22:52:22 +00:00
recommended-dictionary.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
reduce_inputs.test [libFUzzer] change the way we load the seed corpora: instead of loading all files and these executing all files, load and execute them one-by-one. This should reduce the memory usage in many cases 2017-08-29 20:51:24 +00:00
repeated-bytes.test
shrink.test
sigusr.test [libFuzzer] trying to make sigusr tests more reliable 2017-11-10 00:26:23 +00:00
simple-cmp.test
standalone.test
strcmp.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
strncmp.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
strstr.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
swap-cmp.test
trace-malloc-2.test
trace-malloc-threaded.test [libFuzzer] Place volatile after pointer types. 2018-03-27 16:40:20 +00:00
trace-malloc-unbalanced.test [libFuzzer] change the strategy for -experimental_len_control to grow max_len slower 2017-12-12 23:11:28 +00:00
trace-malloc.test
trace-pc.test
ulimit.test
value-profile-cmp.test
value-profile-cmp2.test [libFuzzer] even less aggressive step function for stack depth. Also don't use asan in one test to speed it up 2017-12-09 19:18:10 +00:00
value-profile-cmp3.test
value-profile-cmp4.test
value-profile-div.test
value-profile-load.test
value-profile-mem.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
value-profile-set.test
value-profile-strcmp.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
value-profile-strncmp.test lib Fuzzer FreeBSD support 2018-01-12 17:15:05 +00:00
value-profile-switch.test