blob: d0e5df415e036e36d90a9b70e001b9db90488782 [file] [log] [blame] [view]
# 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)