WIP
This commit is contained in:
parent
7bfd582884
commit
c0238e6b4a
@ -163,25 +163,8 @@ fn main() -> ExitCode {
|
|||||||
return ExitCode::from(1);
|
return ExitCode::from(1);
|
||||||
};
|
};
|
||||||
|
|
||||||
if trace {
|
if trace && !trace_verify(&plan, &relation) {
|
||||||
match verify(&plan, &relation) {
|
return ExitCode::from(1);
|
||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let payload = serde_json::json!({
|
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) {
|
fn trace_plan_header(plan: &Plan, backend: Backend) {
|
||||||
if let Some(name) = &plan.scenario {
|
if let Some(name) = &plan.scenario {
|
||||||
eprintln!("scenario: {name}");
|
eprintln!("scenario: {name}");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user