Skip to content

Commit 7a97c79

Browse files
committed
aligned both implementations and the test semantics so Rust and C++ now mean the same thing
1 parent 67195ff commit 7a97c79

3 files changed

Lines changed: 32 additions & 23 deletions

File tree

feature_integration_tests/test_cases/tests/lifecycle/test_run_targets.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,12 @@ def test_run_target_switch(self, results: ScenarioResult, logs_info_level: LogCo
9393
"""
9494
assert results.return_code == ResultCode.SUCCESS
9595

96+
expected_switch_message = "Switching from startup to running"
97+
9698
if version == "cpp":
97-
assert "Switching from startup to running" in results.stdout or "Switching run targets" in results.stdout, (
98-
"Run target switch failed"
99-
)
99+
assert expected_switch_message in results.stdout, "Run target switch failed"
100100
else:
101-
switch_logs = logs_info_level.get_logs(field="message", pattern="Switching run targets")
101+
switch_logs = logs_info_level.get_logs(field="message", pattern=expected_switch_message)
102102
assert len(switch_logs) > 0, "Run target switch failed"
103103

104104
def test_process_state_communication(

feature_integration_tests/test_scenarios/cpp/src/scenarios/lifecycle/launch_manager_support.cpp

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -636,14 +636,11 @@ class RunTargets : public Scenario {
636636
}
637637

638638
std::cout << "Testing run target support" << std::endl;
639-
if (!run_targets.empty()) {
640-
for (const auto& target : run_targets) {
641-
std::cout << "Run target defined: " << target << std::endl;
642-
}
643-
} else {
644-
std::cout << "Run target defined: startup" << std::endl;
645-
std::cout << "Run target defined: running" << std::endl;
646-
std::cout << "Run target defined: shutdown" << std::endl;
639+
if (run_targets.empty()) {
640+
throw std::runtime_error("Run targets were not defined: missing 'test.run_targets' in scenario input");
641+
}
642+
for (const auto& target : run_targets) {
643+
std::cout << "Run target defined: " << target << std::endl;
647644
}
648645
std::cout << "Starting run target: " << initial_target << std::endl;
649646

@@ -655,11 +652,10 @@ class RunTargets : public Scenario {
655652
}
656653
}
657654

658-
if (!next_target.empty()) {
659-
std::cout << "Switching from " << initial_target << " to " << next_target << std::endl;
660-
} else {
661-
std::cout << "Switching run targets" << std::endl;
655+
if (next_target.empty()) {
656+
throw std::runtime_error("Run target switch failed: no alternative target available in 'test.run_targets'");
662657
}
658+
std::cout << "Switching from " << initial_target << " to " << next_target << std::endl;
663659

664660
std::cout << "Process state reported" << std::endl;
665661
}

feature_integration_tests/test_scenarios/rust/src/scenarios/lifecycle/launch_manager_support.rs

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -402,16 +402,29 @@ impl Scenario for RunTargets {
402402

403403
info!("Testing run target support");
404404

405-
if let Some(targets) = v["test"]["run_targets"].as_array() {
406-
for target in targets {
407-
if let Some(target_name) = target.as_str() {
408-
info!("Run target defined: {}", target_name);
409-
}
410-
}
405+
let targets = v["test"]["run_targets"]
406+
.as_array()
407+
.ok_or_else(|| "Run targets were not defined: missing 'test.run_targets' in scenario input".to_string())?;
408+
409+
let target_names: Vec<&str> = targets.iter().filter_map(|target| target.as_str()).collect();
410+
if target_names.is_empty() {
411+
return Err("Run targets were not defined: no valid string entries in 'test.run_targets'".to_string());
412+
}
413+
414+
for target_name in &target_names {
415+
info!("Run target defined: {}", target_name);
411416
}
412417

413418
info!("Starting run target: {}", initial_target);
414-
info!("Switching run targets");
419+
420+
let next_target = target_names
421+
.iter()
422+
.copied()
423+
.find(|target_name| *target_name != initial_target)
424+
.ok_or_else(|| {
425+
"Run target switch failed: no alternative target available in 'test.run_targets'".to_string()
426+
})?;
427+
info!("Switching from {} to {}", initial_target, next_target);
415428
info!("Process state reported");
416429

417430
Ok(())

0 commit comments

Comments
 (0)