Make manual cluster self-cleaning

This commit is contained in:
andrussal 2026-01-19 10:05:58 +01:00
parent 13a75e7818
commit acb146606b
3 changed files with 10 additions and 32 deletions

View File

@ -5,7 +5,7 @@ use testing_framework_core::{
scenario::{PeerSelection, StartNodeOptions},
topology::config::TopologyConfig,
};
use testing_framework_runner_local::ManualClusterGuard;
use testing_framework_runner_local::ManualCluster;
use tokio::time::sleep;
use tracing_subscriber::fmt::try_init;
@ -26,8 +26,8 @@ async fn manual_cluster_two_clusters_merge() -> Result<()> {
// - `POL_PROOF_DEV_MODE=true`
// - `RUST_LOG=info` (optional)
let config = TopologyConfig::with_node_numbers(2, 0);
let cluster = ManualClusterGuard::from_config(config)?;
// Nodes are stopped automatically when the guard is dropped.
let cluster = ManualCluster::from_config(config)?;
// Nodes are stopped automatically when the cluster is dropped.
println!("starting validator a");

View File

@ -2,6 +2,6 @@ mod manual;
mod node_control;
mod runner;
pub use manual::{ManualCluster, ManualClusterError, ManualClusterGuard};
pub use manual::{ManualCluster, ManualClusterError};
pub use node_control::{LocalDynamicError, LocalDynamicNodes, LocalDynamicSeed};
pub use runner::{LocalDeployer, LocalDeployerError};

View File

@ -1,5 +1,3 @@
use std::ops::Deref;
use testing_framework_core::{
nodes::ApiClient,
scenario::{StartNodeOptions, StartedNode},
@ -32,32 +30,6 @@ pub struct ManualCluster {
nodes: LocalDynamicNodes,
}
pub struct ManualClusterGuard {
cluster: ManualCluster,
}
impl ManualClusterGuard {
pub fn from_config(config: TopologyConfig) -> Result<Self, ManualClusterError> {
Ok(Self {
cluster: ManualCluster::from_config(config)?,
})
}
}
impl Deref for ManualClusterGuard {
type Target = ManualCluster;
fn deref(&self) -> &Self::Target {
&self.cluster
}
}
impl Drop for ManualClusterGuard {
fn drop(&mut self) {
self.cluster.stop_all();
}
}
impl ManualCluster {
pub fn from_config(config: TopologyConfig) -> Result<Self, ManualClusterError> {
let builder = TopologyBuilder::new(config);
@ -127,3 +99,9 @@ impl ManualCluster {
ManualNetworkReadiness::new(nodes).wait().await
}
}
impl Drop for ManualCluster {
fn drop(&mut self) {
self.stop_all();
}
}