Add Rust fuzzing support.
Add a rust_fuzz module which builds a libfuzzer binary that enabes asan+sancov. This relies on the libfuzzer-sys crate. Bug: 147140513 Test: Local rust_fuzz example builds, fuzzes with asan+sancov. Change-Id: I57db3b8d25869791824ccfab768d13b0bb9d42fa
This commit is contained in:
@@ -34,6 +34,8 @@ type Toolchain interface {
|
||||
Supported() bool
|
||||
|
||||
Bionic() bool
|
||||
|
||||
LibclangRuntimeLibraryArch() string
|
||||
}
|
||||
|
||||
type toolchainBase struct {
|
||||
@@ -106,6 +108,36 @@ func (toolchainBase) Supported() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (toolchainBase) LibclangRuntimeLibraryArch() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func LibFuzzerRuntimeLibrary(t Toolchain) string {
|
||||
return LibclangRuntimeLibrary(t, "fuzzer")
|
||||
}
|
||||
|
||||
func LibclangRuntimeLibrary(t Toolchain, library string) string {
|
||||
arch := t.LibclangRuntimeLibraryArch()
|
||||
if arch == "" {
|
||||
return ""
|
||||
}
|
||||
if !t.Bionic() {
|
||||
return "libclang_rt." + library + "-" + arch
|
||||
}
|
||||
return "libclang_rt." + library + "-" + arch + "-android"
|
||||
}
|
||||
|
||||
func LibRustRuntimeLibrary(t Toolchain, library string) string {
|
||||
arch := t.LibclangRuntimeLibraryArch()
|
||||
if arch == "" {
|
||||
return ""
|
||||
}
|
||||
if !t.Bionic() {
|
||||
return "librustc_rt." + library + "-" + arch
|
||||
}
|
||||
return "librustc_rt." + library + "-" + arch + "-android"
|
||||
}
|
||||
|
||||
func toolchainBaseFactory() Toolchain {
|
||||
return &toolchainBase{}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user