This is an archive of the discontinued LLVM Phabricator instance.

Add remote fuzzing integration tests
AbandonedPublic

Authored by aarongreen on Feb 5 2021, 8:52 AM.

Details

Summary

This change attempts to leverage as many of the existing tests under compiler-rt/test/fuzzer as possible for testing remote fuzzing. It introduces a new set of "check" targets, "check-fuzzer-remote-${arch}", that signal to the llvm-lit configuration to modify the 'compiler' and 'run commands. It builds two binaries for each test instead of one: a remote fuzzer that receives its test inputs via IPC, and a fuzzer engine proxy that starts the remote fuzzer, sends it inputs, and collects coverage from it.

This is the 20 change in a chain to enable remote fuzzing support.

Diff Detail

Event Timeline

aarongreen created this revision.Feb 5 2021, 8:52 AM
aarongreen requested review of this revision.Feb 5 2021, 8:52 AM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 5 2021, 8:52 AM
Herald added a subscriber: Restricted Project. · View Herald Transcript

Note to reviewers: this still has a lot of test disabled as FIXMEs. While the preceding changes are in review, I hope to investigate and rectify some of these. Others require additional features to be added that I won't try to land ahead of this change, e.g. value-profile support.

aarongreen abandoned this revision.Sep 1 2021, 9:05 AM

Multiprocess fuzzing will not be supported by the libFuzzer maintainers. Fuchsia has implemented a new approach with their Component Fuzzing Framework (RFC-117).