8000 Added fuzzing to travis · janelia-arduino/ArduinoJson@7b229e4 · GitHub
[go: up one dir, main page]

Skip to content

Commit 7b229e4

Browse files
committed
Added fuzzing to travis
1 parent 9ac9b53 commit 7b229e4

File tree

3 files changed

+26
-9
lines changed

3 files changed

+26
-9
lines changed

.travis.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ matrix:
114114
- env: SCRIPT=arduino VERSION=1.8.2 BOARD=arduino:avr:uno
115115
- env: SCRIPT=platformio BOARD=uno
116116
- env: SCRIPT=platformio BOARD=esp01
117+
- compiler: clang
118+
addons:
119+
apt:
120+
sources: ['ubuntu-toolchain-r-test','llvm-toolchain-trusty-6.0']
121+
packages: ['clang-6.0','llvm-6.0']
122+
env: SCRIPT=fuzz CLANG=6.0
117123
cache:
118124
directories:
119125
- "~/.platformio"

fuzzing/fuzz.sh

Lines changed: 0 additions & 9 deletions
This file was deleted.

scripts/travis/fuzz.sh

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/bash -eux
2+
3+
ROOT_DIR=$(dirname $0)/../../
4+
INCLUDE_DIR=$ROOT_DIR/src/
5+
FUZZING_DIR=$ROOT_DIR/fuzzing/
6+
JSON_CORPUS_DIR=$FUZZING_DIR/my_corpus
7+
JSON_SEED_CORPUS_DIR=$FUZZING_DIR/seed_corpus
8+
9+
CXX="clang++-$CLANG"
10+
CXXFLAGS="-g -fprofile-instr-generate -fcoverage-mapping -fsanitize=address,fuzzer"
11+
12+
$CXX $CXXFLAGS -o json_fuzzer -I$INCLUDE_DIR $FUZZING_DIR/fuzzer.cpp
13+
14+
export ASAN_OPTIONS="detect_leaks=0"
15+
export LLVM_PROFILE_FILE="json_fuzzer.profraw"
16+
./json_fuzzer "$JSON_CORPUS_DIR" "$JSON_SEED_CORPUS_DIR" -max_total_time=60
17+
18+
llvm-profdata-$CLANG merge -sparse json_fuzzer.profraw -o json_fuzzer.profdata
19+
20+
llvm-cov-$CLANG report ./json_fuzzer -instr-profile=json_fuzzer.profdata

0 commit comments

Comments
 (0)
0