Skip to content

Commit 18a5665

Browse files
committed
Merge remote-tracking branch 'origin/732-test-add-prometheus-remote-write-promql-differential-suite' into test/issue754-level3
2 parents 156c159 + 6d7b6a7 commit 18a5665

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

‎control_plane/tests/issue754_level1.rs‎

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ fn expected_plan(name: &str) -> ExpectedPlan {
9696
}
9797
}
9898

99-
fn assert_selected_plan(name: &str, plan: &impl serde::Serialize) {
99+
fn assert_selected_plan(name: &str, plan: &impl serde::Serialize) -> Option<String> {
100100
let expected = expected_plan(name);
101101
let artifact = serde_json::to_value(plan).unwrap();
102102
let entries = artifact["query_plan"]["entries"].as_object().unwrap();
@@ -117,7 +117,9 @@ fn assert_selected_plan(name: &str, plan: &impl serde::Serialize) {
117117
materializations.is_empty(),
118118
"{name}: fallback cannot claim a summary"
119119
);
120-
return;
120+
return Some(format!(
121+
"{name}: issue #754 requires an ASAP-local physical plan; exact fallback is not a correct answer"
122+
));
121123
};
122124
if let Some(operation) = expected.root_operation {
123125
assert_eq!(node["op"], "logical", "{name}: missing root operator");
@@ -205,6 +207,7 @@ fn assert_selected_plan(name: &str, plan: &impl serde::Serialize) {
205207
"{name}: wrong PromQL range"
206208
);
207209
}
210+
None
208211
}
209212

210213
/// The same ten expressions used by level 2 must compile to typed, connected plans.
@@ -215,6 +218,7 @@ fn issue754_queries_have_valid_physical_plans() {
215218
))
216219
.unwrap();
217220
assert_eq!(suite.queries.len(), 10, "the issue-754 contract changed");
221+
let mut missing_local_plans = Vec::new();
218222
for case in suite.queries {
219223
let expected = expected_plan(&case.name);
220224
let mut snapshot: Value = serde_json::from_str(include_str!(
@@ -305,7 +309,9 @@ fn issue754_queries_have_valid_physical_plans() {
305309
.unwrap_or_else(|error| panic!("{} selected plan failed: {error}", case.name));
306310
let selected_entry = selected.query_plan.lookup(&case.expr).unwrap();
307311
assert!(selected_entry.nodes.contains_key(&selected_entry.root));
308-
assert_selected_plan(&case.name, &selected);
312+
if let Some(error) = assert_selected_plan(&case.name, &selected) {
313+
missing_local_plans.push(error);
314+
}
309315
if let Some(installed) = selected
310316
.precompute_plan
311317
.executable_dags
@@ -330,4 +336,9 @@ fn issue754_queries_have_valid_physical_plans() {
330336
.unwrap();
331337
}
332338
}
339+
assert!(
340+
missing_local_plans.is_empty(),
341+
"{}",
342+
missing_local_plans.join("\n")
343+
);
333344
}

0 commit comments

Comments
 (0)