WIP
This commit is contained in:
parent
7bfd582884
commit
c0238e6b4a
@ -163,25 +163,8 @@ fn main() -> ExitCode {
|
||||
return ExitCode::from(1);
|
||||
};
|
||||
|
||||
if trace {
|
||||
match verify(&plan, &relation) {
|
||||
Ok(true) => {
|
||||
let expected = plan.expected_bindings.as_ref().map_or(0, |e| e.rows.len());
|
||||
let columns = plan
|
||||
.expected_bindings
|
||||
.as_ref()
|
||||
.map(|e| e.columns.join(", "))
|
||||
.unwrap_or_default();
|
||||
eprintln!(
|
||||
"verify: bindings match expected_bindings ({expected} rows over {columns})"
|
||||
);
|
||||
}
|
||||
Ok(false) => eprintln!("verify: no expected_bindings in plan, skipped"),
|
||||
Err(err) => {
|
||||
eprintln!("verify: FAILED: {err}");
|
||||
return ExitCode::from(1);
|
||||
}
|
||||
}
|
||||
if trace && !trace_verify(&plan, &relation) {
|
||||
return ExitCode::from(1);
|
||||
}
|
||||
|
||||
let payload = serde_json::json!({
|
||||
@ -266,6 +249,31 @@ fn build_tables_for(
|
||||
}
|
||||
}
|
||||
|
||||
/// Narrate the oracle check. Returns `false` if the bindings differ from
|
||||
/// the plan's `expected_bindings`, so the caller can exit nonzero.
|
||||
fn trace_verify(plan: &Plan, relation: &Relation) -> bool {
|
||||
match verify(plan, relation) {
|
||||
Ok(true) => {
|
||||
let expected = plan.expected_bindings.as_ref().map_or(0, |e| e.rows.len());
|
||||
let columns = plan
|
||||
.expected_bindings
|
||||
.as_ref()
|
||||
.map(|e| e.columns.join(", "))
|
||||
.unwrap_or_default();
|
||||
eprintln!("verify: bindings match expected_bindings ({expected} rows over {columns})");
|
||||
true
|
||||
}
|
||||
Ok(false) => {
|
||||
eprintln!("verify: no expected_bindings in plan, skipped");
|
||||
true
|
||||
}
|
||||
Err(err) => {
|
||||
eprintln!("verify: FAILED: {err}");
|
||||
false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn trace_plan_header(plan: &Plan, backend: Backend) {
|
||||
if let Some(name) = &plan.scenario {
|
||||
eprintln!("scenario: {name}");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user