mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 08:31:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			27 lines
		
	
	
		
			789 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			789 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -eux
 | 
						|
 | 
						|
ROOT_DIR=$(dirname $0)/../../
 | 
						|
INCLUDE_DIR=${ROOT_DIR}/src/
 | 
						|
FUZZING_DIR=${ROOT_DIR}/fuzzing/
 | 
						|
CXXFLAGS="-g -fprofile-instr-generate -fcoverage-mapping -fsanitize=address,fuzzer"
 | 
						|
 | 
						|
fuzz() {
 | 
						|
	NAME="$1"
 | 
						|
	FUZZER="${NAME}_fuzzer"
 | 
						|
	FUZZER_CPP="${FUZZING_DIR}/${NAME}_fuzzer.cpp"
 | 
						|
	CORPUS_DIR="${FUZZING_DIR}/${NAME}_corpus"
 | 
						|
	SEED_CORPUS_DIR="${FUZZING_DIR}/${NAME}_seed_corpus"
 | 
						|
 | 
						|
	clang++-${CLANG} ${CXXFLAGS} -o ${FUZZER} -I$INCLUDE_DIR ${FUZZER_CPP}
 | 
						|
 | 
						|
	export ASAN_OPTIONS="detect_leaks=0"
 | 
						|
	export LLVM_PROFILE_FILE="${FUZZER}.profraw"
 | 
						|
	./${FUZZER} "$CORPUS_DIR" "$SEED_CORPUS_DIR" -max_total_time=30
 | 
						|
 | 
						|
	llvm-profdata-${CLANG} merge -sparse ${LLVM_PROFILE_FILE} -o ${FUZZER}.profdata
 | 
						|
	llvm-cov-${CLANG} report ./${FUZZER} -instr-profile=${FUZZER}.profdata
 | 
						|
}
 | 
						|
 | 
						|
fuzz json
 | 
						|
fuzz msgpack
 |