prysm-pulse/third_party/afl/BUILD.bazel
Preston Van Loon cebb62997d
Add beacon state unmarshal fuzzer, afl support (#6625)
* Add AFL third_party libraries

* add beacon state fuzzing, add afl fuzz bundle

* rm fuzzing engine

* fix and lint

* Check for array out of bounds when calculating proposer delta

* failing test

* fix

* Checkpoint progress

* Add requirement that inclusion distance is not zero, add regression test

* No need for HTR since that is covered in process slots

* Removing some fuzzit logic, old fuzz tests

* Add ssz encoder test and fix

* Fuzzing checkpoint, adding fuzzing to the p2p layer

* ignore some libfuzzer files

* Full testing of p2p processing of blocks, with some mocked stuff

* use tmpdir and always process blocks

* use checkptr

* Update ethereumapis

* go mod tidy

* benchmarks for ferran's fast ssz hash tree root

* Update fastssz

* fmt

* gaz

* goimports

* Fix

* fix ethereumapis

* fix again

* kafka

* fix gen file

* fix compute signing root

* gofmt

* checkpoint progress

* progress

* checkpoint

* updates

* updates

* merge fix

* WIP

* merge

* fix build

* fix merge related issues

* cleanup

* revert unrelated

* lint

* lint

* lint

* manual tags for fuzz

* Commentary on upload script

* some import fixes, but not all

* fix //fuzz:fuzz_tests

* rm unused test

* update generated ssz

* Set // +build libfuzzer

* remove debug code

* A bit of refactoring ot explain why there is a committee_disabled file

Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
2020-09-14 11:42:08 -07:00

81 lines
1.7 KiB
Python

package(
default_testonly = True,
default_visibility = ["//visibility:public"],
)
# Note: these libraries only compile with llvm.
cc_library(
name = "comm_hdr",
hdrs = [
"alloc-inl.h",
"config.h",
"debug.h",
"hash.h",
"types.h",
],
visibility = ["//visibility:private"],
)
CFLAGS = [
"-O3 -funroll-loops",
"-Wall -D_FORTIFY_SOURCE=2 -g -Wno-pointer-sign",
"-DAFL_PATH=\\\"/usr/local/lib/afl\\\"",
"-DDOC_PATH=\\\"/usr/local/share/doc/afl\\\"",
"-DBIN_PATH=\\\"/usr/local/bin\\\"",
]
LDFLAGS = ["-ldl"]
cc_library(
name = "lib-afl-fuzz",
srcs = ["afl-fuzz.c"],
copts = CFLAGS,
linkopts = LDFLAGS,
visibility = ["//visibility:private"],
deps = [":comm_hdr"],
)
cc_library(
name = "lib-afl-showmap",
srcs = ["afl-showmap.c"],
copts = CFLAGS,
linkopts = LDFLAGS,
visibility = ["//visibility:private"],
deps = [":comm_hdr"],
)
cc_library(
name = "afl-llvm-rt",
srcs = ["llvm_mode/afl-llvm-rt.o.c"],
copts = ["-Wno-pointer-sign -O3"],
visibility = ["//visibility:private"],
deps = [":comm_hdr"],
)
cc_library(
name = "fuzzing_engine",
srcs = ["afl_driver.cpp"],
copts = ["-fsanitize=address -O3"],
linkopts = ["-fsanitize=address"],
tags = ["manual"],
deps = [":afl-llvm-rt"],
)
genrule(
name = "libs",
srcs = [
":lib-afl-fuzz",
":lib-afl-showmap",
],
outs = [
"afl-fuzz",
"afl-showmap",
],
cmd = """
cp $(locations :lib-afl-fuzz) .
cp $(locations :lib-afl-showmap) .
mv liblib-afl-fuzz.a $(location afl-fuzz)
mv liblib-afl-showmap.a $(location afl-showmap)
""",
)