1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 12:02:58 +02:00
llvm-mirror/lib/Fuzzer/test
Marcos Pividori 501df0bc6c [libFuzzer] Fix bug in detecting timeouts when input string is empty.
I added a new flag RunningCB to know if the Fuzzer's main thread is
running the CB function, instead of using (!CurrentUnitSize).
(!CurrentUnitSize) doesn't work properly. For example, in FuzzerLoop.cpp,
inside ShuffleAndMinimize() function, we execute the callback with an
empty string (size=0). Previous implementation failed to detect timeouts
in that execution.
Also, I add a regression test for that case.

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

llvm-svn: 289561
2016-12-13 17:46:25 +00:00
..
no-coverage [libFuzzer] switch all libFuzzer tests to use -fsanitize-coverage=trace-pc-guard. Support for the previosly used instrumentation will be removed in the following changes 2016-12-10 02:26:23 +00:00
ubsan [LibFuzzer] Refactor declaration of tests in CMake. 2016-05-27 03:14:40 +00:00
uninstrumented [libFuzzer] switch all libFuzzer tests to use -fsanitize-coverage=trace-pc-guard. Support for the previosly used instrumentation will be removed in the following changes 2016-12-10 02:26:23 +00:00
unit [fuzzer] Add a gtest-style test 2015-01-30 23:26:57 +00:00
AbsNegAndConstant64Test.cpp [libFuzzer] use sizeof() in tests instead of 4 and 8 2016-09-09 22:21:16 +00:00
AbsNegAndConstantTest.cpp [libFuzzer] use sizeof() in tests instead of 4 and 8 2016-09-09 22:21:16 +00:00
AccumulateAllocationsTest.cpp [libFuzzer] disable leak detection if we have tried it for 1000 times w/o finding a leak 2016-04-27 19:52:34 +00:00
afl-driver-extra-stats.test [libFuzzer] Let user specify extra stats file. 2016-06-30 20:43:06 +00:00
afl-driver-stderr.test [libFuzzer] Let user specify extra stats file. 2016-06-30 20:43:06 +00:00
AFLDriverTest.cpp [LibFuzzer] Unbreak the build on macOS which was broken by r272858. 2016-07-07 18:14:11 +00:00
BufferOverflowOnInput.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
caller-callee.test [libFuzzer] don't depend on time in a test 2016-12-11 06:28:09 +00:00
CallerCalleeTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
CMakeLists.txt [libFuzzer] Fix bug in detecting timeouts when input string is empty. 2016-12-13 17:46:25 +00:00
CounterTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
coverage.test [libFuzzer] test cleanup 2016-12-10 02:45:56 +00:00
CustomCrossOverTest.cpp [libFuzzer] remove unused option 2016-09-30 22:29:57 +00:00
CustomMutatorTest.cpp [libFuzzer] simplify FuzzerInterface.h 2016-05-13 18:04:35 +00:00
dict1.txt [libFuzzer] actually make the dictionaries work (+docs) 2015-09-04 00:12:11 +00:00
DivTest.cpp [libFuzzer] use trace-div and trace-gep for guided fuzzing, add tests 2016-08-30 01:30:14 +00:00
DSO1.cpp [libFuzzer] extend -print_coverage to also print uncovered lines, functions, and files. 2016-10-19 00:12:03 +00:00
DSO2.cpp [libFuzzer] extend -print_coverage to also print uncovered lines, functions, and files. 2016-10-19 00:12:03 +00:00
DSOTestExtra.cpp [libFuzzer] change trace-pc to use 8-byte guards 2016-09-17 05:04:47 +00:00
DSOTestMain.cpp [libFuzzer] extend -print_coverage to also print uncovered lines, functions, and files. 2016-10-19 00:12:03 +00:00
EmptyTest.cpp [libfuzzer] replacing unittest for truncate_units with functional test. 2016-05-25 21:00:17 +00:00
FourIndependentBranchesTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
FullCoverageSetTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
fuzzer-customcrossover.test [libFuzzer] remove unused option 2016-09-30 22:29:57 +00:00
fuzzer-custommutator.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-dict.test [libFuzzer] add a position hint to the dictionary-based mutator 2016-01-07 01:49:35 +00:00
fuzzer-dirs.test [libFuzzer] refactoring: move the Corpus into a separate class; delete two unused experimental features 2016-09-21 01:04:43 +00:00
fuzzer-fdmask.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-finalstats.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-flags.test [libFuzzer] don't print help for internal flags 2016-09-10 00:35:30 +00:00
fuzzer-fn-adapter.test [libfuzzer] arbitrary function adapter. 2016-03-03 23:45:29 +00:00
fuzzer-jobs.test [libFuzzer] change trace-pc to use 8-byte guards 2016-09-17 05:04:47 +00:00
fuzzer-leak.test [libFuzzer] fix -error_exitcode=N, now with a test 2016-11-03 19:31:18 +00:00
fuzzer-oom-with-profile.test [libFuzzer] extend -rss_limit_mb to crash instantly on a single malloc that exceeds the limit 2016-11-30 22:39:35 +00:00
fuzzer-oom.test [libFuzzer] add a test for r288389 (-rss_limit_mb=0 means no limit). 2016-12-01 18:02:07 +00:00
fuzzer-printcovpcs.test [libFuzzer] test cleanup 2016-12-10 02:45:56 +00:00
fuzzer-runs.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-seed.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-segv.test [libfuzzer] splitting fuzzer.test 2016-06-03 18:05:22 +00:00
fuzzer-singleinputs.test [libFuzzer] fix a bug when running a single unit of N bytes with -max_len=M, M<N, caused a buffer overflow 2016-08-30 14:52:05 +00:00
fuzzer-threaded.test [libFuzzer] use the new chainable malloc hooks instead of the old un-chainable ones, use atomic for malloc/free counters instead of a thread local counter in the main thread. This should make on-the-spot leak detection in libFuzzer more reliable 2016-06-16 20:17:41 +00:00
fuzzer-timeout.test [libFuzzer] Fix bug in detecting timeouts when input string is empty. 2016-12-13 17:46:25 +00:00
fuzzer-traces-hooks.test [libFuzzer] add hooks for strstr, strcasestr, strcasecmp, strncasecmp 2016-07-15 23:27:19 +00:00
fuzzer-ubsan.test [libFuzzer] add a test for libFuzzer+ubsan, extend the docs on using libFuzzer+ubsan 2016-05-09 21:02:36 +00:00
fuzzer.test [libFuzzer] build libFuzzer itself with asan 2016-12-12 20:58:10 +00:00
FuzzerFnAdapterUnittest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
FuzzerUnittest.cpp [libFuzzer] implement crash-resistant merge (https://github.com/google/sanitizers/issues/722). This is a first experimental variant that needs some more testing, thus not yet adding a lit test (but there are unit tests). 2016-12-09 01:17:24 +00:00
hi.txt [LibFuzzer] test_single_input option to run a single test case. 2015-10-01 23:23:06 +00:00
InitializeTest.cpp [libFuzzer] add StandaloneFuzzTargetMain.c and a test for it 2016-10-25 22:30:34 +00:00
LeakTest.cpp [libFuzzer] added -detect_leaks flag (0 by default for now). When enabled, it will help finding leaks while fuzzing 2016-04-20 00:24:21 +00:00
LeakTimeoutTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
lit.cfg [libFuzzer] remove dfsan support and some related stale code. This is not being used and as is is pretty weak anyway 2016-10-04 06:08:46 +00:00
lit.site.cfg.in [libFuzzer] remove dfsan support and some related stale code. This is not being used and as is is pretty weak anyway 2016-10-04 06:08:46 +00:00
LoadTest.cpp [libFuzzer] use trace-div and trace-gep for guided fuzzing, add tests 2016-08-30 01:30:14 +00:00
MemcmpTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
merge.test [libFuzzer] respect -max_len during merge 2016-12-12 20:39:35 +00:00
minimize_crash.test [libFuzzer] don't require extra flags with -minimize_crash=1 (default to -max_total_time=600). Also respect exact_artifact_path when outputting the end result 2016-12-13 00:40:47 +00:00
NthRunCrashTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
NullDerefOnEmptyTest.cpp [libFuzzer] print stats if we crash on empty input 2016-05-25 00:15:36 +00:00
NullDerefTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
OneHugeAllocTest.cpp [libFuzzer] add one more OOM test, which we currently don't handle very well 2016-06-09 01:20:35 +00:00
OutOfMemorySingleLargeMallocTest.cpp [libFuzzer] extend -rss_limit_mb to crash instantly on a single malloc that exceeds the limit 2016-11-30 22:39:35 +00:00
OutOfMemoryTest.cpp [libFuzzer] enhance -rss_limit_mb and enable by default. Now it will print the OOM reproducer. 2016-05-06 23:38:07 +00:00
repeated-bytes.test [libFuzzer] fix the bot 2016-08-15 19:36:13 +00:00
RepeatedBytesTest.cpp [libFuzzer] add InsertRepeatedBytes and EraseBytes. 2016-08-15 17:48:28 +00:00
RepeatedMemcmp.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
shrink.test [libFuzzer] test cleanup 2016-12-10 02:45:56 +00:00
ShrinkControlFlowTest.cpp [libFuzzer] refactoring to make -shrink=1 work for value profile, added a test. 2016-10-05 22:56:21 +00:00
ShrinkValueProfileTest.cpp [libFuzzer] refactoring to make -shrink=1 work for value profile, added a test. 2016-10-05 22:56:21 +00:00
SignedIntOverflowTest.cpp [libFuzzer] add a test for libFuzzer+ubsan, extend the docs on using libFuzzer+ubsan 2016-05-09 21:02:36 +00:00
simple-cmp.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
SimpleCmpTest.cpp [libFuzzer] make SimpleCmpTest a bit simpler to crack and more verbose 2016-12-12 22:39:33 +00:00
SimpleDictionaryTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
SimpleFnAdapterTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
SimpleHashTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
SimpleTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
SimpleThreadedTest.cpp [libFuzzer] more refactoring around CurrentUnit. Also add a threading test on which we currently have a race (when reporting bugs from multiple threads) 2016-05-26 22:17:32 +00:00
SingleMemcmpTest.cpp [libFuzzer] new experimental feature: value profiling. Profiles values that affect control flow and treats new values as new coverage. 2016-08-16 19:33:51 +00:00
SingleStrcmpTest.cpp [libFuzzer] new experimental feature: value profiling. Profiles values that affect control flow and treats new values as new coverage. 2016-08-16 19:33:51 +00:00
SingleStrncmpTest.cpp [libFuzzer] new experimental feature: value profiling. Profiles values that affect control flow and treats new values as new coverage. 2016-08-16 19:33:51 +00:00
SpamyTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
standalone.test [libFuzzer] add StandaloneFuzzTargetMain.c and a test for it 2016-10-25 22:30:34 +00:00
StrcmpTest.cpp [libFuzzer] add InsertRepeatedBytes and EraseBytes. 2016-08-15 17:48:28 +00:00
StrncmpOOBTest.cpp [libFuzzer] add a test for asan's strict_string_checks=1 2016-10-22 00:05:44 +00:00
StrncmpTest.cpp [libFuzzer] new experimental feature: value profiling. Profiles values that affect control flow and treats new values as new coverage. 2016-08-16 19:33:51 +00:00
StrstrTest.cpp [libFuzzer] properly intercept memmem 2016-07-19 18:29:06 +00:00
swap-cmp.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
SwapCmpTest.cpp [libFuzzer] simplify the code for use_cmp, also use the position hint when available, add a test 2016-10-25 02:04:43 +00:00
Switch2Test.cpp [libFuzzer] add switch tests 2016-10-11 01:13:32 +00:00
SwitchTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
ThreadedLeakTest.cpp [libFuzzer] add ThreadedLeakTest 2016-07-15 17:19:43 +00:00
ThreadedTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
TimeoutEmptyTest.cpp [libFuzzer] Fix bug in detecting timeouts when input string is empty. 2016-12-13 17:46:25 +00:00
TimeoutTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
trace-malloc.test [libFuzzer] add -trace_cmp=1 (guiding mutations based on the observed CMP instructions). This is a reincarnation of the previously deleted -use_traces, but using a different approach for collecting traces. Still a toy, but at least it scales well. Also fix -merge in trace-pc-guard mode 2016-10-14 20:20:33 +00:00
TraceMallocTest.cpp [libFuzzer] add -trace_malloc= flag 2016-10-13 19:06:46 +00:00
ulimit.test [libFuzzer] use less stack 2016-11-12 00:24:35 +00:00
UninstrumentedTest.cpp [libfuzzer] adding license headers to cpp files 2016-04-01 18:38:58 +00:00
value-profile-cmp2.test [libFuzzer] split one slow test into several, for more parallel testing 2016-12-12 22:55:25 +00:00
value-profile-cmp3.test [libFuzzer] split one slow test into several, for more parallel testing 2016-12-12 22:55:25 +00:00
value-profile-cmp4.test [libFuzzer] split one slow test into several, for more parallel testing 2016-12-12 22:55:25 +00:00
value-profile-cmp.test [libFuzzer] split one slow test into several, for more parallel testing 2016-12-12 22:55:25 +00:00
value-profile-div.test [libFuzzer] add -minimize_crash flag (to minimize crashers). also add two tests that I failed to commit last time 2016-09-01 01:22:27 +00:00
value-profile-load.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
value-profile-mem.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
value-profile-set.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
value-profile-strcmp.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
value-profile-strncmp.test [libFuzzer] enable use_cmp by default 2016-10-27 21:44:37 +00:00
value-profile-switch.test [libFuzzer] test cleanup 2016-12-10 02:45:56 +00:00