blob: b5b333db9d125629f22372f2d4a7c86c0ea552c7 [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/inspect_puppet.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)