|
Add AddressSanitizer to fuzzer analysis
Instead of running potential fuzzes against two executables (Debug, Release), this now runs them against 4 executables (Debug, Release) x (Clang, ASAN). ASAN is short for a clang build with the AddressSanitizer flag on.
There are many new test cases that excercise the various combinations of ASAN output and Clang output. For making a stacktrace, we look for the ASAN crash first, if that didn't crash, we use the Clang crash then. The ASAN stacktrace parsing requires 'llvm-symbolizer' to be on the path. This typically involves a symbolic link.
To avoid duplicate code and functions with many parameters, I made some new structs in result.go, namely GCSPackage. GCSPackage represents all the analysis information that is stored in Google Storage: The fuzz name and category, and the raw strings of the 6 files that are the output. This allows reuse for uploading to and downloading from GCS.
A FuzzReport has changed from having a single HumanReadableFlags array to having one for each Debug and Release. This allows for more symmetrical code and could allow for better filtering on the frontend.
There are two new flags for the backend, one that forces a re-analysis of the current fuzzes and one that toggles the outputs of builds. The latter hopefully will make production logs easier to read.
BUG= skia:4438
Committed: https://skia.googlesource.com/buildbot/+/5610c848205e7d4b732bbafa646ab669bcb34e42
Total comments: 2
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1899 lines, -281 lines) |
Patch |
 |
M |
compute_engine_scripts/fuzzer/install.sh
|
View
|
1
|
1 chunk |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
fuzzer/go/aggregator/aggregator.go
|
View
|
|
13 chunks |
+110 lines, -60 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/backend/version_updater.go
|
View
|
1
2
3
|
4 chunks |
+13 lines, -5 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/common/build_skia.go
|
View
|
|
5 chunks |
+23 lines, -7 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/common/common.go
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/common/storage.go
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
fuzzer/go/common/version_watcher.go
|
View
|
|
2 chunks |
+9 lines, -0 lines |
2 comments
|
Download
|
 |
M |
fuzzer/go/config/config.go
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/data/report.go
|
View
|
|
2 chunks |
+12 lines, -10 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/data/report_test.go
|
View
|
|
1 chunk |
+45 lines, -45 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/data/result.go
|
View
|
1
2
|
3 chunks |
+202 lines, -75 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/data/stacktrace.go
|
View
|
|
5 chunks |
+47 lines, -7 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/data/stacktrace_test.go
|
View
|
1
2
|
5 chunks |
+343 lines, -4 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/parse-asan-double.asan
|
View
|
|
1 chunk |
+64 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/parse-asan-single.asan
|
View
|
|
1 chunk |
+52 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/0grey_debug.asan
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/0grey_debug.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/0grey_release.asan
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/0grey_release.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/1bad_debug.asan
|
View
|
|
1 chunk |
+52 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/1bad_release.asan
|
View
|
|
1 chunk |
+16 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/1grey_debug.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/1grey_release.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/2bad_debug.asan
|
View
|
|
1 chunk |
+19 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/2bad_debug.dump
|
View
|
|
1 chunk |
+189 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/2bad_debug.err
|
View
|
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/2bad_release.asan
|
View
|
|
1 chunk |
+64 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/2grey_release.err
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/3bad_debug.dump
|
View
|
|
1 chunk |
+162 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/3bad_release.asan
|
View
|
|
1 chunk |
+50 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/3bad_release.dump
|
View
|
|
1 chunk |
+158 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/3grey_debug.asan
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/4bad_debug.asan
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/4bad_debug.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/4bad_release.asan
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/4bad_release.err
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/5bad_debug.asan
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/5bad_debug.err
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/5bad_release.asan
|
View
|
|
1 chunk |
+17 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/5bad_release.err
|
View
|
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_debug.asan
|
View
|
1
2
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_debug.dump
|
View
|
1
2
|
1 chunk |
+34 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_debug.err
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_release.asan
|
View
|
1
2
|
1 chunk |
+6 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_release.dump
|
View
|
1
2
|
1 chunk |
+34 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/6bad_release.err
|
View
|
1
2
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/7bad_debug.asan
|
View
|
1
2
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/7bad_debug.err
|
View
|
1
2
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/7bad_release.asan
|
View
|
1
2
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
A |
fuzzer/go/frontend/data/testdata/stacktrace/7bad_release.err
|
View
|
1
2
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/frontend/gsloader/gsloader.go
|
View
|
|
7 chunks |
+27 lines, -10 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/fuzzcache/fuzzcache_test.go
|
View
|
|
1 chunk |
+45 lines, -45 lines |
0 comments
|
Download
|
 |
M |
fuzzer/go/fuzzer-be/main.go
|
View
|
|
5 chunks |
+15 lines, -4 lines |
0 comments
|
Download
|
 |
M |
go/gs/gs.go
|
View
|
1
2
3
|
2 chunks |
+28 lines, -7 lines |
0 comments
|
Download
|
Depends on Patchset:
Dependent Patchsets:
Total messages: 14 (7 generated)
|