ci: add afl fuzz stage
fuzz for 1 min to quickly detect e.g. incorrect asserts
This commit is contained in:
		
					parent
					
						
							
								fb663da761
							
						
					
				
			
			
				commit
				
					
						01d8c0015e
					
				
			
		
					 2 changed files with 22 additions and 0 deletions
				
			
		
							
								
								
									
										15
									
								
								.github/workflows/ci.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										15
									
								
								.github/workflows/ci.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -63,3 +63,18 @@ jobs:
 | 
			
		|||
          rustup component add clippy
 | 
			
		||||
      - name: "Check linting"
 | 
			
		||||
        run: make lint
 | 
			
		||||
  fuzz:
 | 
			
		||||
    name: Fuzz
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: "Checkout"
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
      - name: "Setup toolchain"
 | 
			
		||||
        run: |
 | 
			
		||||
          rustup update nightly
 | 
			
		||||
          rustup default nightly
 | 
			
		||||
          cargo install afl
 | 
			
		||||
      - name: "Fuzz"
 | 
			
		||||
        run: |
 | 
			
		||||
          echo core | sudo tee /proc/sys/kernel/core_pattern
 | 
			
		||||
          make afl_quick
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -68,6 +68,13 @@ afl:
 | 
			
		|||
		trap - EXIT;\
 | 
			
		||||
		cat) # keep process alive for trap
 | 
			
		||||
 | 
			
		||||
afl_quick:
 | 
			
		||||
	rm -rf tests/afl/out
 | 
			
		||||
	(cd tests/afl && \
 | 
			
		||||
		cargo afl build --release --config profile.release.debug-assertions=true && \
 | 
			
		||||
		AFL_NO_UI=1 AFL_BENCH_UNTIL_CRASH=1 \
 | 
			
		||||
			cargo afl fuzz -i in -o out -V 60 target/release/${AFL_TARGET})
 | 
			
		||||
 | 
			
		||||
afl_crash:
 | 
			
		||||
	set +e; \
 | 
			
		||||
	for f in $$(find tests/afl/out -path '*/${AFL_TARGET_CRASH}/id*'); do \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue