Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2016-08-19 | [libFuzzer] fix the non-debug build warnings | Kostya Serebryany | 1 | -1/+2 | |
llvm-svn: 279321 | |||||
2016-08-17 | [libFuzzer] given 0 and 255 more preference when inserting repeated bytes | Kostya Serebryany | 1 | -1/+2 | |
llvm-svn: 278986 | |||||
2016-08-17 | [libFuzzer] one more mutation: ChangeBinaryInteger; also fix the breakage ↵ | Kostya Serebryany | 1 | -1/+38 | |
from r278970 llvm-svn: 278982 | |||||
2016-08-17 | Replace a few more "fall through" comments with LLVM_FALLTHROUGH | Justin Bogner | 1 | -1/+1 | |
Follow up to r278902. I had missed "fall through", with a space. llvm-svn: 278970 | |||||
2016-08-17 | [libFuzzer] more mutations | Kostya Serebryany | 1 | -18/+69 | |
llvm-svn: 278950 | |||||
2016-08-15 | [libFuzzer] add InsertRepeatedBytes and EraseBytes. | Kostya Serebryany | 1 | -7/+29 | |
New mutation: InsertRepeatedBytes. Updated mutation: EraseByte => EraseBytes. This helps https://github.com/google/sanitizers/issues/710 where libFuzzer was not able to find a known bug. Now it finds it in minutes. Hopefully, the change is general enough to help other targets. llvm-svn: 278687 | |||||
2016-07-15 | [libFuzzer] add hooks for strstr, strcasestr, strcasecmp, strncasecmp | Kostya Serebryany | 1 | -3/+2 | |
llvm-svn: 275648 | |||||
2016-06-23 | [libfuzzer] moving is_ascii handler inside mutation dispatcher. | Mike Aizatsky | 1 | -1/+7 | |
Summary: It also fixes a bug, when first random might not be ascii. Differential Revision: http://reviews.llvm.org/D21573 llvm-svn: 273611 | |||||
2016-06-07 | [LibFuzzer] Declare and use sanitizer functions in ``fuzzer::ExternalFunctions`` | Dan Liew | 1 | -4/+4 | |
This fixes linking problems on OSX. Unfortunately it turns out we need to use an instance of the ``fuzzer::ExternalFunctions`` object in several places so this commit also replaces all instances with a single global instance. It also turns out initializing a global ``fuzzer::ExternalFunctions`` before main is entered (i.e. letting the object be initialised by the global initializers) is not safe (on OSX the call to ``Printf()`` in the CTOR crashes if it is called from a global initializer) so we instead have a global ``fuzzer::ExternalFunctions*`` and initialize it inside ``FuzzerDriver()``. Multiple unit tests depend also depend on the ``fuzzer::ExternalFunctions*`` global so a ``main()`` function has been added that initializes it before running any tests. Differential Revision: http://reviews.llvm.org/D20943 llvm-svn: 272072 | |||||
2016-06-07 | [libfuzzer] custom crossover interface function. | Mike Aizatsky | 1 | -0/+23 | |
Differential Revision: http://reviews.llvm.org/D21089 llvm-svn: 272054 | |||||
2016-06-03 | [libfuzzer] hiding custom mutator handling in MutationDispatcher. | Mike Aizatsky | 1 | -19/+42 | |
Summary: Refactoring, no functional changes. Differential Revision: http://reviews.llvm.org/D20975 llvm-svn: 271740 | |||||
2016-02-13 | [libFuzzer] remove std::vector operations from hot paths, NFC | Kostya Serebryany | 1 | -1/+2 | |
llvm-svn: 260829 | |||||
2016-02-13 | [libFuzzer] don't require seed in fuzzer::Mutate, instead use the global ↵ | Kostya Serebryany | 1 | -6/+0 | |
Fuzzer object for fuzzer::Mutate. This makes custom mutators fast llvm-svn: 260810 | |||||
2016-02-13 | [libFuzzer] simplify CTOR of MutationDispatcher | Kostya Serebryany | 1 | -18/+18 | |
llvm-svn: 260800 | |||||
2016-02-13 | [libFuzzer] get rid of MutationDispatcher::Impl (simplify the code; NFC) | Kostya Serebryany | 1 | -132/+37 | |
llvm-svn: 260799 | |||||
2016-02-13 | [libFuzzer] get rid of UserSuppliedFuzzer; NFC | Kostya Serebryany | 1 | -0/+7 | |
llvm-svn: 260798 | |||||
2016-02-13 | [libFuzzer] simplify the code around Random. NFC | Kostya Serebryany | 1 | -5/+5 | |
llvm-svn: 260797 | |||||
2016-01-22 | [libFuzzer] add more fields to DictionaryEntry to count the number of uses ↵ | Kostya Serebryany | 1 | -27/+50 | |
and successes llvm-svn: 258589 | |||||
2016-01-21 | [libFuzzer] don't use std::vector in one more hot path | Kostya Serebryany | 1 | -6/+29 | |
llvm-svn: 258380 | |||||
2016-01-19 | [libFuzzer] use std::mt19937 for generating random numbers by default. Fix ↵ | Kostya Serebryany | 1 | -3/+2 | |
MyStoll to handle negative values. Use std::any_of instead of std::find_if llvm-svn: 258178 | |||||
2016-01-16 | [libFuzzer] replace vector with a simpler data structure in the Dictionaries ↵ | Kostya Serebryany | 1 | -26/+25 | |
to avoid memory allocations on hot path llvm-svn: 257985 | |||||
2016-01-14 | [libFuzzer] suggest a dictionary to the user of some of the trace-based ↵ | Kostya Serebryany | 1 | -13/+59 | |
dictionary entries were successful llvm-svn: 257736 | |||||
2016-01-12 | [libFuzzer] when a new unit is discovered using a dictionary, print all used ↵ | Kostya Serebryany | 1 | -2/+12 | |
dictionary entries llvm-svn: 257435 | |||||
2016-01-09 | [libFuzzer] change the way trace-based mutations are applied. Instead of a ↵ | Kostya Serebryany | 1 | -0/+6 | |
custom code just rely on the automatically created dictionary llvm-svn: 257248 | |||||
2016-01-07 | [libFuzzer] add a position hint to the dictionary-based mutator | Kostya Serebryany | 1 | -20/+50 | |
llvm-svn: 257013 | |||||
2016-01-06 | [libFuzzer] extend the dictionary mutator to optionally overwrite data with ↵ | Kostya Serebryany | 1 | -5/+12 | |
the dict entry llvm-svn: 256900 | |||||
2015-12-19 | [libFuzzer] make CrossOver just one of the other mutations | Kostya Serebryany | 1 | -0/+23 | |
llvm-svn: 256081 | |||||
2015-12-19 | [libFuzzer] print successfull mutations sequences | Kostya Serebryany | 1 | -13/+30 | |
llvm-svn: 256071 | |||||
2015-10-08 | [libFuzzer] fix 32-bit build | Kostya Serebryany | 1 | -1/+1 | |
llvm-svn: 249646 | |||||
2015-09-08 | [libFuzzer] add one more mutator: Mutate_ChangeASCIIInteger | Kostya Serebryany | 1 | -0/+34 | |
llvm-svn: 247027 | |||||
2015-09-04 | [libFuzzer] when a single mutation fails try a few more times with other ↵ | Kostya Serebryany | 1 | -7/+14 | |
mutations before returning un-mutated data llvm-svn: 246828 | |||||
2015-09-04 | [libFuzzer] actually make the dictionaries work (+docs) | Kostya Serebryany | 1 | -7/+47 | |
llvm-svn: 246825 | |||||
2015-09-03 | [libFuzzer] refactor the mutation functions so that they are now methods of ↵ | Kostya Serebryany | 1 | -17/+16 | |
a class. NFC llvm-svn: 246808 | |||||
2015-08-06 | [libFuzzer] add one more mutation strategy: byte shuffling | Kostya Serebryany | 1 | -1/+15 | |
llvm-svn: 244188 | |||||
2015-08-01 | [libFuzzer] more refactoring of the Mutator and adding tests to it | Kostya Serebryany | 1 | -13/+28 | |
llvm-svn: 243818 | |||||
2015-08-01 | [libFuzzer] start refactoring the Mutator and adding tests to it | Kostya Serebryany | 1 | -7/+11 | |
llvm-svn: 243817 | |||||
2015-07-24 | [libFuzzer] allow users to supply their own implementation of rand | Kostya Serebryany | 1 | -12/+13 | |
llvm-svn: 243078 | |||||
2015-05-22 | [lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutators | Kostya Serebryany | 1 | -24/+25 | |
llvm-svn: 238059 | |||||
2015-02-19 | [fuzzer] properly annotate fallthrough, add one more entry to FAQ | Kostya Serebryany | 1 | -1/+1 | |
llvm-svn: 229880 | |||||
2015-02-04 | [fuzzer] make multi-process execution more verbose; fix mutation to actually ↵ | Kostya Serebryany | 1 | -8/+16 | |
respect mutation depth and to never produce empty units llvm-svn: 228170 | |||||
2015-01-29 | Reverting r227452, which adds back the fuzzer library. Now excluding the ↵ | Aaron Ballman | 1 | -0/+62 | |
fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset. llvm-svn: 227464 | |||||
2015-01-29 | Temporarily reverting the fuzzer library as it causes too many build issues ↵ | Aaron Ballman | 1 | -62/+0 | |
for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252 llvm-svn: 227452 | |||||
2015-01-27 | Add a Fuzzer library | Kostya Serebryany | 1 | -0/+62 | |
Summary: A simple genetic in-process coverage-guided fuzz testing library. I've used this fuzzer to test clang-format (it found 12+ bugs, thanks djasper@ for the fixes!) and it may also help us test other parts of LLVM. So why not keep it in the LLVM repository? I plan to add the cmake build rules later (in a separate patch, if that's ok) and also add a clang-format-fuzzer target. See README.txt for details. Test Plan: Tests will follow separately. Reviewers: djasper, chandlerc, rnk Reviewed By: rnk Subscribers: majnemer, ygribov, dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D7184 llvm-svn: 227252 |