476f0ce31a 
								
							 
						 
						
							
							
								
								[libFuzzer] replace vector with a simpler data structure in the Dictionaries to avoid memory allocations on hot path  
							
							... 
							
							
							
							llvm-svn: 257985 
							
						 
						
							2016-01-16 03:53:32 +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  
				
					
						
							
							
								 
						
							
								4174005622 
								
							 
						 
						
							
							
								
								[libFuzzer] when a new unit is discovered using a dictionary, print all used dictionary entries  
							
							... 
							
							
							
							llvm-svn: 257435 
							
						 
						
							2016-01-12 02:36:59 +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  
				
					
						
							
							
								 
						
							
								80eb76abf4 
								
							 
						 
						
							
							
								
								[libFuzzer] extend the dictionary mutator to optionally overwrite data with the dict entry  
							
							... 
							
							
							
							llvm-svn: 256900 
							
						 
						
							2016-01-06 02:13:04 +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  
				
					
						
							
							
								 
						
							
								3b804877fd 
								
							 
						 
						
							
							
								
								[libFuzzer] fix 32-bit build  
							
							... 
							
							
							
							llvm-svn: 249646 
							
						 
						
							2015-10-08 00:59:25 +00:00  
				
					
						
							
							
								 
						
							
								25425ad920 
								
							 
						 
						
							
							
								
								[libFuzzer] add one more mutator: Mutate_ChangeASCIIInteger  
							
							... 
							
							
							
							llvm-svn: 247027 
							
						 
						
							2015-09-08 17:19:31 +00:00  
				
					
						
							
							
								 
						
							
								b2e9897644 
								
							 
						 
						
							
							
								
								[libFuzzer] when a single mutation fails try a few more times with other mutations before returning un-mutated data  
							
							... 
							
							
							
							llvm-svn: 246828 
							
						 
						
							2015-09-04 00:40:29 +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  
				
					
						
							
							
								 
						
							
								bf29ff2fa5 
								
							 
						 
						
							
							
								
								[libFuzzer] add one more mutation strategy: byte shuffling  
							
							... 
							
							
							
							llvm-svn: 244188 
							
						 
						
							2015-08-06 01:29:13 +00:00  
				
					
						
							
							
								 
						
							
								86a5fba71d 
								
							 
						 
						
							
							
								
								[libFuzzer] more refactoring of the Mutator and adding tests to it  
							
							... 
							
							
							
							llvm-svn: 243818 
							
						 
						
							2015-08-01 02:23:06 +00:00  
				
					
						
							
							
								 
						
							
								8ce7424e9c 
								
							 
						 
						
							
							
								
								[libFuzzer] start refactoring the Mutator and adding tests to it  
							
							... 
							
							
							
							llvm-svn: 243817 
							
						 
						
							2015-08-01 01:42:51 +00:00  
				
					
						
							
							
								 
						
							
								404c69f2c8 
								
							 
						 
						
							
							
								
								[libFuzzer] allow users to supply their own implementation of rand  
							
							... 
							
							
							
							llvm-svn: 243078 
							
						 
						
							2015-07-24 01:06:40 +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  
				
					
						
							
							
								 
						
							
								2117269dd1 
								
							 
						 
						
							
							
								
								[fuzzer] properly annotate fallthrough, add one more entry to FAQ  
							
							... 
							
							
							
							llvm-svn: 229880 
							
						 
						
							2015-02-19 18:21:12 +00:00  
				
					
						
							
							
								 
						
							
								5b266a8a23 
								
							 
						 
						
							
							
								
								[fuzzer] make multi-process execution more verbose; fix mutation to actually respect mutation depth and to never produce empty units  
							
							... 
							
							
							
							llvm-svn: 228170 
							
						 
						
							2015-02-04 19:10:20 +00:00  
				
					
						
							
							
								 
						
							
								ef11698cac 
								
							 
						 
						
							
							
								
								Reverting r227452, which adds back the fuzzer library. Now excluding the fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset.  
							
							... 
							
							
							
							llvm-svn: 227464 
							
						 
						
							2015-01-29 16:58:29 +00:00  
				
					
						
							
							
								 
						
							
								7b54ed221a 
								
							 
						 
						
							
							
								
								Temporarily reverting the fuzzer library as it causes too many build issues for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252  
							
							... 
							
							
							
							llvm-svn: 227452 
							
						 
						
							2015-01-29 15:49:22 +00:00  
				
					
						
							
							
								 
						
							
								d53b43fe11 
								
							 
						 
						
							
							
								
								Add a Fuzzer library  
							
							... 
							
							
							
							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 
							
						 
						
							2015-01-27 22:08:41 +00:00