From 6cd99e6ab45dce7b1a3b865bacf76ce54651bd07 Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Tue, 11 Feb 2020 08:24:25 -0500 Subject: 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 --- rust/testing.go | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'rust/testing.go') diff --git a/rust/testing.go b/rust/testing.go index 07f557ab8..bb511b648 100644 --- a/rust/testing.go +++ b/rust/testing.go @@ -87,6 +87,13 @@ func GatherRequiredDepsForTest() string { system_shared_libs: [], export_include_dirs: ["libprotobuf-cpp-full-includes"], } + cc_library { + name: "libclang_rt.asan-aarch64-android", + no_libcrt: true, + nocrt: true, + system_shared_libs: [], + export_include_dirs: ["libprotobuf-cpp-full-includes"], + } rust_library { name: "libstd", crate_name: "std", @@ -129,7 +136,12 @@ func GatherRequiredDepsForTest() string { srcs: ["foo.rs"], host_supported: true, } - + rust_library { + name: "liblibfuzzer_sys", + crate_name: "libfuzzer_sys", + srcs:["foo.rs"], + host_supported: true, + } ` return bp } @@ -147,6 +159,7 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) { ctx.RegisterModuleType("rust_library_host", RustLibraryHostFactory) ctx.RegisterModuleType("rust_library_host_dylib", RustLibraryDylibHostFactory) ctx.RegisterModuleType("rust_library_host_rlib", RustLibraryRlibHostFactory) + ctx.RegisterModuleType("rust_fuzz", RustFuzzFactory) ctx.RegisterModuleType("rust_ffi", RustFFIFactory) ctx.RegisterModuleType("rust_ffi_shared", RustFFISharedFactory) ctx.RegisterModuleType("rust_ffi_static", RustFFIStaticFactory) -- cgit v1.2.3-59-g8ed1b