| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.fuzzer; |
| |
| using zx; |
| |
| /// See |Controller.GetCorpusWriter| and |Controller.GetCorpusReader|. |
| type Corpus = flexible enum : uint8 { |
| /// Indicates a set of fixed, immutable inputs typically provided at start-up. These inputs are |
| /// never discarded when merging. |
| SEED = 1; |
| |
| /// Indicates a set of inputs generated by the fuzzer. These may be modified and/or discarded |
| /// when merging and minimizing the corpus. |
| LIVE = 2; |
| }; |
| |
| /// Receives a sequence of test inputs belonging to a fuzzer's corpus. |
| /// Returns an error if the transfer fails. |
| protocol CorpusReader { |
| Next(resource struct { |
| test_input Input; |
| }) -> (struct { |
| result zx.status; |
| }); |
| }; |