pub struct SelfTestConfig {
pub target_url: String,
pub skip_tls_verify: bool,
pub timeout: Duration,
pub extra_headers: Vec<(String, String)>,
pub delay_between_requests: Duration,
pub base_path: Option<String>,
pub source_ips: Vec<IpAddr>,
pub geo_source_ips: Vec<IpAddr>,
pub geo_source_headers: Vec<String>,
pub capture: Option<Arc<Mutex<Vec<CaseCapture>>>>,
pub validate_response_schemas: bool,
}Expand description
Configuration for a self-test run.
Fields§
§target_url: String§skip_tls_verify: bool§timeout: Duration§extra_headers: Vec<(String, String)>Optional extra headers to attach to every request (e.g. auth).
delay_between_requests: DurationDelay between requests to avoid hammering the server.
base_path: Option<String>Round 18.1 — base path to prepend to every spec path. When the
spec declares /users and the deployed API is served under
/api, --base-path /api should make the self-test hit
https://target/api/users instead of https://target/users.
Pre-fix this was ignored entirely and every operation 404’d
(Srikanth’s vCenter run on 0.3.152: 1275 positives, 1275 4xx).
source_ips: Vec<IpAddr>Round 18.5 — local source IPs to bind outgoing requests to. Each IP must already be assigned to an interface on the host. Operations round-robin through the resulting client pool.
geo_source_ips: Vec<IpAddr>Round 18.5 — fake source IPs to advertise via forwarded-IP headers (used to exercise GEODB lookup at the destination). Rotated per operation.
geo_source_headers: Vec<String>Which forwarded-IP header(s) to populate when geo_source_ips
is non-empty. Empty → no-op; default below sets the standard
three-header set.
capture: Option<Arc<Mutex<Vec<CaseCapture>>>>Round 23 (c-iii) — when Some, every probe captures method, URL,
request headers/body and response status/headers/body into this
sink. Caller drains it after run_self_test and writes
conformance-self-test-requests.jsonl. None → no capture (zero
extra allocations on the hot path).
validate_response_schemas: boolRound 25 — when true, validate every probe’s response body
against the spec’s response schema for the actual status
returned (closes round 21.3 / Srikanth’s a2 / a3 ask). The
validation result lands in CaseCapture::response_schema_error
(None → matched, or no schema for that status). Default false:
JSON-Schema validation of large response bodies adds wall-clock
time and the user has to opt in.
Trait Implementations§
Source§impl Clone for SelfTestConfig
impl Clone for SelfTestConfig
Source§fn clone(&self) -> SelfTestConfig
fn clone(&self) -> SelfTestConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SelfTestConfig
impl Debug for SelfTestConfig
Auto Trait Implementations§
impl Freeze for SelfTestConfig
impl RefUnwindSafe for SelfTestConfig
impl Send for SelfTestConfig
impl Sync for SelfTestConfig
impl Unpin for SelfTestConfig
impl UnsafeUnpin for SelfTestConfig
impl UnwindSafe for SelfTestConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more