From 2fcbffa4a1dd445586bb6be14caa38ba3ef4bdc3 Mon Sep 17 00:00:00 2001 From: Ivan Lozano Date: Thu, 27 Jul 2023 10:40:52 -0400 Subject: rust: Add support for host fuzzers. Adds support for host-based Rust fuzzers. Bug: 282897366 Test: SANITZE_HOST="address" m Test: run fuzzer Change-Id: Ibb951f651ef12e763778ebbf12e66769a7113920 --- rust/fuzz_test.go | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'rust/fuzz_test.go') diff --git a/rust/fuzz_test.go b/rust/fuzz_test.go index 0aecf617e..ee28c6d3a 100644 --- a/rust/fuzz_test.go +++ b/rust/fuzz_test.go @@ -34,6 +34,10 @@ func TestRustFuzz(t *testing.T) { srcs: ["foo.rs"], rustlibs: ["libtest_fuzzing"], } + rust_fuzz_host { + name: "host_fuzzer", + srcs: ["foo.rs"], + } `) // Check that appropriate dependencies are added and that the rustlib linkage is correct. @@ -50,7 +54,13 @@ func TestRustFuzz(t *testing.T) { if !strings.Contains(fuzz_libtest.Args["rustcFlags"], "-C passes='sancov-module'") || !strings.Contains(fuzz_libtest.Args["rustcFlags"], "--cfg fuzzing") { t.Errorf("rust_fuzz module does not contain the expected flags (sancov-module, cfg fuzzing).") + } + // Check that host modules support fuzzing. + host_fuzzer := ctx.ModuleForTests("fuzz_libtest", "android_arm64_armv8-a_fuzzer").Rule("rustc") + if !strings.Contains(host_fuzzer.Args["rustcFlags"], "-C passes='sancov-module'") || + !strings.Contains(host_fuzzer.Args["rustcFlags"], "--cfg fuzzing") { + t.Errorf("rust_fuzz_host module does not contain the expected flags (sancov-module, cfg fuzzing).") } // Check that dependencies have 'fuzzer' variants produced for them as well. -- cgit v1.2.3-59-g8ed1b