summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerInternal.h
Commit message (Collapse)AuthorAgeFilesLines
* [libFuzzer] add a flag -exact_artifact_pathKostya Serebryany2015-11-251-0/+1
| | | | llvm-svn: 254100
* output_csv libfuzzer optionMike Aizatsky2015-11-121-0/+1
| | | | | | | | | | | Summary: The option outputs statistics in CSV format preceded by 1 header line. This is intended for machine processing of the output. -verbosity=0 should likely be set. Differential Revision: http://reviews.llvm.org/D14600 llvm-svn: 252856
* [libFuzzer] experimental flag -drill (another search heuristic; Mike ↵Kostya Serebryany2015-11-121-3/+6
| | | | | | Aizatsky's idea) llvm-svn: 252838
* [libFuzzer] when choosing the next unit to mutate, give some preference to ↵Kostya Serebryany2015-11-041-0/+1
| | | | | | the most recent units (they are more likely to be interesting) llvm-svn: 252097
* [libFuzzer] add -merge flag to merge corporaKostya Serebryany2015-10-241-0/+4
| | | | llvm-svn: 251168
* [libFuzzer] remove some old code; also make ↵Kostya Serebryany2015-10-231-7/+1
| | | | | | __sanitizer_get_total_unique_caller_callee_pairs weak so that newer libFuzzer works with older asan llvm-svn: 251133
* [libFuzzer] use the indirect caller-callee counter as an independent search ↵Kostya Serebryany2015-10-221-0/+3
| | | | | | heuristic llvm-svn: 251078
* [libFuzzer] more refactoring the code that checks the coverage. NFCKostya Serebryany2015-10-221-1/+1
| | | | llvm-svn: 251075
* [libFuzzer] refactoring the code that checks the coverage. NFCKostya Serebryany2015-10-221-4/+8
| | | | llvm-svn: 251074
* [libFuzzer] remove the deprecated 'tokens' featureKostya Serebryany2015-10-221-3/+1
| | | | llvm-svn: 251069
* [libFuzzer] add -shuffle flagKostya Serebryany2015-10-171-0/+1
| | | | llvm-svn: 250603
* [libFuzzer] print a stack trace on timeoutKostya Serebryany2015-10-161-0/+1
| | | | llvm-svn: 250571
* [libFuzzer] When -test_single_input crashes the test it is not necessary to ↵Kostya Serebryany2015-10-161-0/+1
| | | | | | write crash-file because input is already known to the user. Patch by Mike Aizatsky llvm-svn: 250564
* [libFuzzer] add -artifact_prefix flagKostya Serebryany2015-10-091-0/+1
| | | | llvm-svn: 249807
* [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return ↵Kostya Serebryany2015-10-021-3/+10
| | | | | | int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. llvm-svn: 249214
* [libFuzzer] remove experimental flag and functionalityKostya Serebryany2015-10-021-2/+0
| | | | llvm-svn: 249194
* [libFuzzer] add a flag -max_total_timeKostya Serebryany2015-10-021-0/+1
| | | | llvm-svn: 249181
* [LibFuzzer] test_single_input option to run a single test case.Ivan Krasin2015-10-011-1/+1
| | | | | | | | | | -test_single_input flag specifies a file name with test data. Review URL: http://reviews.llvm.org/D13359 Patch by Mike Aizatsky! llvm-svn: 249096
* [libFuzzer] remove -iterations as redundant (there is also -num_runs)Kostya Serebryany2015-09-081-1/+1
| | | | llvm-svn: 247030
* [libFuzzer] adding a parser for AFL-style dictionaries + tests.Kostya Serebryany2015-09-031-0/+11
| | | | llvm-svn: 246800
* [libFuzzer] honour -only_ascii=1 when reading the initial corpus. Also, ↵Kostya Serebryany2015-09-021-0/+1
| | | | | | remove ugly #ifdef llvm-svn: 246689
* [libFuzzer] add two flags, -tbm_depth and -tbm_width to control how the ↵Kostya Serebryany2015-08-121-0/+3
| | | | | | trace-based-mutations are applied llvm-svn: 244712
* [libFuzzer] add -only_ascii flagKostya Serebryany2015-08-111-1/+6
| | | | llvm-svn: 244559
* Add missing include guard to FuzzerInternal.h, NFC.Yaron Keren2015-08-101-0/+6
| | | | llvm-svn: 244457
* [libFuzzer] move the mutators to public interface so that custom mutators ↵Kostya Serebryany2015-08-061-17/+0
| | | | | | may reuse these functions directly llvm-svn: 244250
* [libFuzzer] add one more mutation strategy: byte shufflingKostya Serebryany2015-08-061-0/+2
| | | | llvm-svn: 244188
* [libFuzzer] add option -report_slow_units=Nsec to control when slow units ↵Kostya Serebryany2015-08-051-0/+1
| | | | | | are printed llvm-svn: 244152
* [libFuzzer] more refactoring of the Mutator and adding tests to itKostya Serebryany2015-08-011-1/+7
| | | | llvm-svn: 243818
* [libFuzzer] start refactoring the Mutator and adding tests to itKostya Serebryany2015-08-011-0/+2
| | | | llvm-svn: 243817
* [libFuzzer] allow users to supply their own implementation of randKostya Serebryany2015-07-241-3/+6
| | | | llvm-svn: 243078
* [libFuzzer] dump long running units to disk Kostya Serebryany2015-07-231-1/+1
| | | | llvm-svn: 243031
* [lib/Fuzzer] start getting rid of std::cerr. Sadly, these parts of C++ ↵Kostya Serebryany2015-05-231-0/+1
| | | | | | library used in libFuzzer badly interract with the same code used in the target function and also with dfsan. It's easier to just not use std::cerr than to defeat these issues. llvm-svn: 238078
* [lib/Fuzzer] remove -use_coverage_pairs=1, an experimental feature that is ↵Kostya Serebryany2015-05-221-2/+0
| | | | | | unlikely to ever scale llvm-svn: 238063
* [lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutatorsKostya Serebryany2015-05-221-4/+16
| | | | llvm-svn: 238059
* [lib/Fuzzer] change the meaning of -timeout flag: now timeout is applied to ↵Kostya Serebryany2015-05-191-0/+1
| | | | | | every unit of work separately llvm-svn: 237735
* [lib/Fuzzer] more efficient reload logic; also don't spam git too muchKostya Serebryany2015-05-191-2/+1
| | | | llvm-svn: 237649
* [lib/Fuzzer] when -sync_command=<CMD> is given, periodically execute 'CMD ↵Kostya Serebryany2015-05-181-0/+6
| | | | | | CORPUS' to synchronize with other processes llvm-svn: 237617
* [lib/Fuzzer] Add SHA1 implementation from public domain.Kostya Serebryany2015-05-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | Summary: This adds a SHA1 implementation taken from public domain code. The change is trivial, but as it involves third-party code I'd like a second pair of eyes before commit. LibFuzzer can not use SHA1 from openssl because openssl may not be available and because we may be fuzzing openssl itself. Using sha1sum via a pipe is too slow. Test Plan: n/a Reviewers: chandlerc Reviewed By: chandlerc Subscribers: majnemer, llvm-commits Differential Revision: http://reviews.llvm.org/D9733 llvm-svn: 237400
* [lib/Fuzzer] guess the right number of workers if -jobs=N is given but ↵Kostya Serebryany2015-05-121-0/+2
| | | | | | -workers=M is not. Update the docs. llvm-svn: 237163
* [lib/Fuzzer] remove the -dfsan=1 flag, just use -use_traces=1 (w/ or w/o dfsan)Kostya Serebryany2015-05-121-1/+0
| | | | llvm-svn: 237083
* [lib/Fuzzer] rename FuzzerDFSan.cpp to FuzzerTraceState.cpp; update ↵Kostya Serebryany2015-05-111-1/+1
| | | | | | comments. NFC expected llvm-svn: 237050
* [lib/Fuzzer] add a trace-based mutatation logic. Same idea as with ↵Kostya Serebryany2015-05-111-0/+1
| | | | | | DFSan-based mutator, but instead of relying on taint tracking, try to find the data directly in the input. More (logic and comments) to go. llvm-svn: 237043
* [lib/Fuzzer] use -fsanitize-coverage=trace-cmp when building LLVM with ↵Kostya Serebryany2015-05-081-3/+9
| | | | | | LLVM_USE_SANITIZE_COVERAGE; in lib/Fuzzer try to reload the corpus to pick up new units from other processes llvm-svn: 236906
* [lib/Fuzzer] change the way we use taint information for fuzzing. Now, we ↵Kostya Serebryany2015-05-071-1/+11
| | | | | | run a single unit and collect suggested mutations based on tracing+taint data, then apply the suggested mutations one by one. The previous scheme was slower and more complex. llvm-svn: 236772
* [lib/Fuzzer] minor refactoring/simplification, NFCKostya Serebryany2015-05-071-2/+4
| | | | llvm-svn: 236757
* [lib/Fuzzer] on crash print the contents of the crashy input as base64Kostya Serebryany2015-05-051-0/+1
| | | | llvm-svn: 236548
* [fuzzer] Add support for token-based fuzzing (e.g. for C++). Allow string ↵Kostya Serebryany2015-03-311-11/+15
| | | | | | flags. llvm-svn: 233745
* [fuzzer] when a single unit takes over 1 second to run and it is the slowest ↵Kostya Serebryany2015-03-301-0/+1
| | | | | | one so far, print it. llvm-svn: 233637
* [fuzzer] print various stats in a unified wayKostya Serebryany2015-03-301-0/+1
| | | | llvm-svn: 233624
* DFSan-based fuzzer (proof of concept).Kostya Serebryany2015-03-301-0/+4
| | | | | | | | | | | | | | | | | | Summary: This adds a simple DFSan-based (i.e. taint-guided) fuzzer mutator, see the comments for details. Test Plan: a test added Reviewers: samsonov, pcc Reviewed By: samsonov, pcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8669 llvm-svn: 233613
OpenPOWER on IntegriCloud