1deb0498f5 
								
							 
						 
						
							
							
								
								[libFuzzer] don't require seed in fuzzer::Mutate, instead use the global Fuzzer object for fuzzer::Mutate. This makes custom mutators fast  
							
							... 
							
							
							
							llvm-svn: 260810 
							
						 
						
							2016-02-13 06:24:18 +00:00  
				
					
						
							
							
								 
						
							
								29bcb9f54e 
								
							 
						 
						
							
							
								
								[libFuzzer] remove the C++-ish variant of FuzzerDriver from the interface  
							
							... 
							
							
							
							llvm-svn: 260801 
							
						 
						
							2016-02-13 03:59:26 +00:00  
				
					
						
							
							
								 
						
							
								ecab57b3ce 
								
							 
						 
						
							
							
								
								[libFuzzer] remove UserSuppliedFuzzer from the interface (it was a bad idea).  
							
							... 
							
							
							
							llvm-svn: 260796 
							
						 
						
							2016-02-13 02:39:30 +00:00  
				
					
						
							
							
								 
						
							
								22cc5e2375 
								
							 
						 
						
							
							
								
								[libFuzzer] provide a plain C interface for custom mutators (experimental)  
							
							... 
							
							
							
							llvm-svn: 260794 
							
						 
						
							2016-02-13 02:29:38 +00:00  
				
					
						
							
							
								 
						
							
								d84f74cab7 
								
							 
						 
						
							
							
								
								Revert r258473 as it's breaking the build with libc++  
							
							... 
							
							
							
							Reviewers: kcc
Differential Revision: http://reviews.llvm.org/D16441 
llvm-svn: 258479 
							
						 
						
							2016-01-22 03:21:52 +00:00  
				
					
						
							
							
								 
						
							
								b008fd4d89 
								
							 
						 
						
							
							
								
								Use std::piecewise_constant_distribution instead of ad-hoc binary search.  
							
							... 
							
							
							
							Summary:
Fix the issue with the most recently discovered unit receiving much less attention.
Note: I had to change the seed for one test to make it pass. Alternatively,
the number of runs could be increased. I believe that the average time of
'foo' discovery is not increased, just seed=1 was particularly convenient
for the previous PRNG scheme used.
Reviewers: aizatsky, kcc
Subscribers: llvm-commits, kcc
Differential Revision: http://reviews.llvm.org/D16419 
llvm-svn: 258473 
							
						 
						
							2016-01-22 01:32:34 +00:00  
				
					
						
							
							
								 
						
							
								311f27c0a8 
								
							 
						 
						
							
							
								
								[libFuzzer] use std::mt19937 for generating random numbers by default. Fix MyStoll to handle negative values. Use std::any_of instead of std::find_if  
							
							... 
							
							
							
							llvm-svn: 258178 
							
						 
						
							2016-01-19 20:33:57 +00:00  
				
					
						
							
							
								 
						
							
								aca7696f4d 
								
							 
						 
						
							
							
								
								[libFuzzer] introduce LLVMFuzzerInitialize  
							
							... 
							
							
							
							llvm-svn: 257980 
							
						 
						
							2016-01-16 01:23:12 +00:00  
				
					
						
							
							
								 
						
							
								628bc3ec00 
								
							 
						 
						
							
							
								
								[libFuzzer] move some code from public interface header to a non-public header. NFC  
							
							... 
							
							
							
							llvm-svn: 257963 
							
						 
						
							2016-01-16 00:04:36 +00:00  
				
					
						
							
							
								 
						
							
								4b35874b2a 
								
							 
						 
						
							
							
								
								[libFuzzer] suggest a dictionary to the user of some of the trace-based dictionary entries were successful  
							
							... 
							
							
							
							llvm-svn: 257736 
							
						 
						
							2016-01-14 02:36:44 +00:00  
				
					
						
							
							
								 
						
							
								b65805a939 
								
							 
						 
						
							
							
								
								[libFuzzer] change the way trace-based mutations are applied. Instead of a custom code just rely on the automatically created dictionary  
							
							... 
							
							
							
							llvm-svn: 257248 
							
						 
						
							2016-01-09 03:08:58 +00:00  
				
					
						
							
							
								 
						
							
								152ac7ad70 
								
							 
						 
						
							
							
								
								[libFuzzer] add a position hint to the dictionary-based mutator  
							
							... 
							
							
							
							llvm-svn: 257013 
							
						 
						
							2016-01-07 01:49:35 +00:00  
				
					
						
							
							
								 
						
							
								27ab2d759f 
								
							 
						 
						
							
							
								
								[libFuzzer] make CrossOver just one of the other mutations  
							
							... 
							
							
							
							llvm-svn: 256081 
							
						 
						
							2015-12-19 02:49:09 +00:00  
				
					
						
							
							
								 
						
							
								14c50288cc 
								
							 
						 
						
							
							
								
								[libFuzzer] print successfull mutations sequences  
							
							... 
							
							
							
							llvm-svn: 256071 
							
						 
						
							2015-12-19 01:09:49 +00:00  
				
					
						
							
							
								 
						
							
								a1a5c69b57 
								
							 
						 
						
							
							
								
								[LibFuzzer] Introducing FUZZER_FLAG_UNSIGNED and using it for seeding.  
							
							... 
							
							
							
							Differential Revision: http://reviews.llvm.org/D15339 
done
llvm-svn: 255296 
							
						 
						
							2015-12-10 20:41:53 +00:00  
				
					
						
							
							
								 
						
							
								94660b3c36 
								
							 
						 
						
							
							
								
								[libFuzzer] remove some old code; also make __sanitizer_get_total_unique_caller_callee_pairs weak so that newer libFuzzer works with older asan  
							
							... 
							
							
							
							llvm-svn: 251133 
							
						 
						
							2015-10-23 18:37:58 +00:00  
				
					
						
							
							
								 
						
							
								20bb5e71b2 
								
							 
						 
						
							
							
								
								[libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return 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 
							
						 
						
							2015-10-02 23:34:06 +00:00  
				
					
						
							
							
								 
						
							
								a938bcb89a 
								
							 
						 
						
							
							
								
								[libFuzzer] add two more variants of FuzzerDriver for convenience  
							
							... 
							
							
							
							llvm-svn: 247300 
							
						 
						
							2015-09-10 16:57:57 +00:00  
				
					
						
							
							
								 
						
							
								25425ad920 
								
							 
						 
						
							
							
								
								[libFuzzer] add one more mutator: Mutate_ChangeASCIIInteger  
							
							... 
							
							
							
							llvm-svn: 247027 
							
						 
						
							2015-09-08 17:19:31 +00:00  
				
					
						
							
							
								 
						
							
								7d21166218 
								
							 
						 
						
							
							
								
								[libFuzzer] actually make the dictionaries work (+docs)  
							
							... 
							
							
							
							llvm-svn: 246825 
							
						 
						
							2015-09-04 00:12:11 +00:00  
				
					
						
							
							
								 
						
							
								ec2dcb1d91 
								
							 
						 
						
							
							
								
								[libFuzzer] refactor the mutation functions so that they are now methods of a class. NFC  
							
							... 
							
							
							
							llvm-svn: 246808 
							
						 
						
							2015-09-03 21:24:19 +00:00  
				
					
						
							
							
								 
						
							
								242ca930e8 
								
							 
						 
						
							
							
								
								[libFuzzer] move the mutators to public interface so that custom mutators may reuse these functions directly  
							
							... 
							
							
							
							llvm-svn: 244250 
							
						 
						
							2015-08-06 19:19:55 +00:00  
				
					
						
							
							
								 
						
							
								bf29ff2fa5 
								
							 
						 
						
							
							
								
								[libFuzzer] add one more mutation strategy: byte shuffling  
							
							... 
							
							
							
							llvm-svn: 244188 
							
						 
						
							2015-08-06 01:29:13 +00:00  
				
					
						
							
							
								 
						
							
								404c69f2c8 
								
							 
						 
						
							
							
								
								[libFuzzer] allow users to supply their own implementation of rand  
							
							... 
							
							
							
							llvm-svn: 243078 
							
						 
						
							2015-07-24 01:06:40 +00:00  
				
					
						
							
							
								 
						
							
								2ea204e645 
								
							 
						 
						
							
							
								
								[lib/Fuzzer] make assertions more informative and update comments for the user-supplied mutator  
							
							... 
							
							
							
							llvm-svn: 238658 
							
						 
						
							2015-05-30 17:33:13 +00:00  
				
					
						
							
							
								 
						
							
								e0d60ba876 
								
							 
						 
						
							
							
								
								[lib/Fuzzer] doxygen-ify the comments for the user interface  
							
							... 
							
							
							
							llvm-svn: 238086 
							
						 
						
							2015-05-23 02:12:05 +00:00  
				
					
						
							
							
								 
						
							
								f342459aa4 
								
							 
						 
						
							
							
								
								[lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutators  
							
							... 
							
							
							
							llvm-svn: 238059 
							
						 
						
							2015-05-22 22:35:31 +00:00  
				
					
						
							
							
								 
						
							
								016852c396 
								
							 
						 
						
							
							
								
								[fuzzer] split main() into FuzzerDriver() that takes a callback as a parameter and a tiny main() in a separate file  
							
							... 
							
							
							
							llvm-svn: 229882 
							
						 
						
							2015-02-19 18:45:37 +00:00