perfgate-fake
Test utilities and fake implementations for perfgate testing.
Part of the perfgate workspace.
Overview
Deterministic, configurable test doubles for the perfgate adapter traits. Use these in unit tests and integration tests to avoid I/O and ensure reproducible test results.
Key API
FakeProcessRunner— configurable process runner returning pre-set results per commandFakeHostProbe— configurable host probe returning pre-set system informationFakeClock— configurable clock for deterministic time-based testingMockProcessBuilder— builder pattern for creatingRunResultinstances with sensible defaults
Example
use ;
use ;
use Duration;
// Build a mock result with the fluent builder
let result = new
.exit_code
.wall_ms
.stdout
.build;
// Configure the fake runner
let runner = new;
runner.set_result;
let spec = CommandSpec ;
let output = runner.run.unwrap;
assert_eq!;
assert_eq!;
// Use the fake clock for deterministic timing
let clock = new.with_millis;
clock.advance;
assert_eq!;
License
Licensed under either Apache-2.0 or MIT.