@@ -2,7 +2,7 @@ language: c
2
2
3
3
env :
4
4
- AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 AFL_NO_UI=1 AFL_STOP_MANUALLY=1
5
- - AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 AFL_NO_UI=1 AFL_EXIT_WHEN_DONE=1
5
+ - AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 AFL_NO_UI=1 AFL_EXIT_WHEN_DONE=1
6
6
# TODO: test AFL_BENCH_UNTIL_CRASH once we have a target that crashes
7
7
- AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 AFL_NO_UI=1 AFL_BENCH_JUST_ONE=1
8
8
@@ -11,43 +11,50 @@ before_install:
11
11
- sudo apt install -y libtool libtool-bin automake bison libglib2.0
12
12
13
13
# TODO: Look into splitting off some builds using a build matrix.
14
+ # TODO: Move this all into a bash script so we don't need to write bash in yaml.
14
15
script :
15
16
- make
16
17
- ./afl-gcc ./test-instr.c -o test-instr-gcc
17
18
- mkdir seeds
18
19
- echo "" > seeds/nil_seed
19
- - if [ -z "$AFL_STOP_MANUALLY" ];
20
- then ./afl-fuzz -i seeds -o out/ -- ./test-instr-gcc;
20
+ - if [ -z "$AFL_STOP_MANUALLY" ];
21
+ then ./afl-fuzz -i seeds -o out/ -- ./test-instr-gcc;
21
22
else timeout --preserve-status 5s ./afl-fuzz -i seeds -o out/ -- ./test-instr-gcc;
22
23
fi
23
24
- .travis/check_fuzzer_stats.sh -o out -k peak_rss_mb -v 1 -p 3
24
25
- rm -r out/*
25
26
- ./afl-clang ./test-instr.c -o test-instr-clang
26
- - if [ -z "$AFL_STOP_MANUALLY" ];
27
- then ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang;
27
+ - if [ -z "$AFL_STOP_MANUALLY" ];
28
+ then ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang;
28
29
else timeout --preserve-status 5s ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang;
29
30
fi
30
31
- .travis/check_fuzzer_stats.sh -o out -k peak_rss_mb -v 1 -p 2
31
32
- make clean
32
33
- CC=clang CXX=clang++ make
33
34
- cd llvm_mode
34
- # TODO: Build with different versions of clang/LLVM since LLVM passes don't have
35
- # a stable API.
35
+ # TODO: Build with different versions of clang/LLVM since LLVM passes don't
36
+ # have a stable API.
36
37
- CC=clang CXX=clang++ LLVM_CONFIG=llvm-config make
37
38
- cd ..
38
39
- rm -r out/*
39
40
- ./afl-clang-fast ./test-instr.c -o test-instr-clang-fast
40
- - if [ -z "$AFL_STOP_MANUALLY" ];
41
- then ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang;
41
+ - if [ -z "$AFL_STOP_MANUALLY" ];
42
+ then ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang-fast;
42
43
else timeout --preserve-status 5s ./afl-fuzz -i seeds -o out/ -- ./test-instr-clang-fast;
43
44
fi
44
45
- .travis/check_fuzzer_stats.sh -o out -k peak_rss_mb -v 1 -p 3
46
+ # Test fuzzing libFuzzer targets and trace-pc-guard instrumentation.
47
+ - clang -g -fsanitize-coverage=trace-pc-guard ./test-libfuzzer-target.c -c
48
+ - clang -c -w llvm_mode/afl-llvm-rt.o.c
49
+ - wget https://raw.githubusercontent.com/llvm/llvm-project/master/compiler-rt/lib/fuzzer/afl/afl_driver.cpp
50
+ - clang++ afl_driver.cpp afl-llvm-rt.o.o test-libfuzzer-target.o -o test-libfuzzer-target
51
+ - timeout --preserve-status 5s ./afl-fuzz -i seeds -o out/ -- ./test-libfuzzer-target
45
52
- cd qemu_mode
46
53
- ./build_qemu_support.sh
47
54
- cd ..
48
55
- gcc ./test-instr.c -o test-no-instr
49
- - if [ -z "$AFL_STOP_MANUALLY" ];
50
- then ./afl-fuzz -Q -i seeds -o out/ -- ./test-no-instr;
56
+ - if [ -z "$AFL_STOP_MANUALLY" ];
57
+ then ./afl-fuzz -Q -i seeds -o out/ -- ./test-no-instr;
51
58
else timeout --preserve-status 5s ./afl-fuzz -Q -i seeds -o out/ -- ./test-no-instr;
52
59
fi
53
60
- .travis/check_fuzzer_stats.sh -o out -k peak_rss_mb -v 12 -p 9
0 commit comments