| # Validator architecture |
| |
| Validator applies automated interactive tests to a stateful library such as |
| Inspect or file systems - an interactive golden file framework. |
| |
| The Validator architecture includes: |
| |
| * A set of tests to validate functionality. |
| * A FIDL protocol to invoke operations to be tested. |
| * One or more puppet programs, which receive FIDL commands and invoke library |
| calls. |
| * A reference implementation or simulation of the desired behavior. |
| * Analysis of puppet results, comparison to local results, and reporting. |
| |
| ## Inspect validator |
| |
| The Inspect Validator implementation includes: |
| |
| * [Core Validator program](/src/diagnostics/validator/inspect/src) |
| * [Tests](/src/diagnostics/validator/inspect/src/trials.rs) |
| * [FIDL](/src/diagnostics/validator/inspect/fidl/validate.test.fidl) |
| * [Reading the puppet's output](/src/diagnostics/validator/inspect/src/data/scanner.rs) |
| * [Reference Behavior and comparison](/src/diagnostics/validator/inspect/src/data.rs) |
| * [Analysis](/src/diagnostics/validator/inspect/src/runner.rs) |
| and [more analysis](/src/diagnostics/validator/inspect/src/metrics.rs) |
| * [Reporting](/src/diagnostics/validator/inspect/src/results.rs) |
| * [Rust Puppet](/src/diagnostics/validator/inspect/lib/rust/src/main.rs). |
| See also [Inspect Validator Puppet Architecture](puppet.md) |
| * [Dart Puppet](https://fuchsia.googlesource.com/topaz/+/HEAD/public/dart/fuchsia_inspect/test/validator_puppet/lib/main.dart) |