Use the Test struct more in the code

This commit is contained in:
Omar Abdulla
2025-08-23 18:04:16 +03:00
parent c9303f0020
commit bd5ff6d75e
+36 -32
View File
@@ -329,7 +329,7 @@ async fn does_compiler_support_mode<P: Platform>(
async fn start_driver_task<'a, L, F>( async fn start_driver_task<'a, L, F>(
args: &Arguments, args: &Arguments,
tests: impl Stream<Item = Test<'a>>, tests: impl Stream<Item = Test<'a>>,
report_tx: mpsc::UnboundedSender<(Test<'a>, CaseResult)>, _: mpsc::UnboundedSender<(Test<'a>, CaseResult)>,
) -> anyhow::Result<impl Future<Output = ()>> ) -> anyhow::Result<impl Future<Output = ()>>
where where
L: Platform, L: Platform,
@@ -360,7 +360,6 @@ where
move |test| { move |test| {
let leader_nodes = leader_nodes.clone(); let leader_nodes = leader_nodes.clone();
let follower_nodes = follower_nodes.clone(); let follower_nodes = follower_nodes.clone();
let report_tx = report_tx.clone();
let cached_compiler = cached_compiler.clone(); let cached_compiler = cached_compiler.clone();
async move { async move {
@@ -368,11 +367,7 @@ where
let follower_node = follower_nodes.round_robbin(); let follower_node = follower_nodes.round_robbin();
let result = handle_case_driver::<L, F>( let result = handle_case_driver::<L, F>(
test.metadata_file_path, test,
test.metadata,
test.case_idx,
test.case,
test.mode.clone(),
args, args,
cached_compiler, cached_compiler,
leader_node, leader_node,
@@ -380,9 +375,8 @@ where
) )
.await; .await;
report_tx // TODO: We need to report the case success and failure in here.
.send((test, result)) let _ = result;
.expect("Failed to send report");
} }
}, },
)) ))
@@ -465,20 +459,16 @@ async fn start_reporter_task(mut report_rx: mpsc::UnboundedReceiver<(Test<'_>, C
name = "Handling Case" name = "Handling Case"
skip_all, skip_all,
fields( fields(
metadata_file_path = %metadata.relative_path().display(), metadata_file_path = %test.metadata.relative_path().display(),
mode = %mode, mode = %test.mode,
%case_idx, case_idx = %test.case_idx,
case_name = case.name.as_deref().unwrap_or("Unnamed Case"), case_name = test.case.name.as_deref().unwrap_or("Unnamed Case"),
leader_node = leader_node.id(), leader_node = leader_node.id(),
follower_node = follower_node.id(), follower_node = follower_node.id(),
) )
)] )]
async fn handle_case_driver<L, F>( async fn handle_case_driver<L, F>(
metadata_file_path: &Path, test: Test<'_>,
metadata: &MetadataFile,
case_idx: CaseIdx,
case: &Case,
mode: Mode,
config: &Arguments, config: &Arguments,
cached_compiler: Arc<CachedCompiler>, cached_compiler: Arc<CachedCompiler>,
leader_node: &L::Blockchain, leader_node: &L::Blockchain,
@@ -504,14 +494,27 @@ where
_, _,
), ),
) = try_join!( ) = try_join!(
cached_compiler.compile_contracts::<L>(metadata, metadata_file_path, &mode, config, None), cached_compiler.compile_contracts::<L>(
cached_compiler.compile_contracts::<F>(metadata, metadata_file_path, &mode, config, None) test.metadata,
test.metadata_file_path,
&test.mode,
config,
None
),
cached_compiler.compile_contracts::<F>(
test.metadata,
test.metadata_file_path,
&test.mode,
config,
None
)
)?; )?;
let mut leader_deployed_libraries = None::<HashMap<_, _>>; let mut leader_deployed_libraries = None::<HashMap<_, _>>;
let mut follower_deployed_libraries = None::<HashMap<_, _>>; let mut follower_deployed_libraries = None::<HashMap<_, _>>;
let mut contract_sources = metadata.contract_sources()?; let mut contract_sources = test.metadata.contract_sources()?;
for library_instance in metadata for library_instance in test
.metadata
.libraries .libraries
.iter() .iter()
.flatten() .flatten()
@@ -551,7 +554,8 @@ where
// Getting the deployer address from the cases themselves. This is to ensure that we're // Getting the deployer address from the cases themselves. This is to ensure that we're
// doing the deployments from different accounts and therefore we're not slowed down by // doing the deployments from different accounts and therefore we're not slowed down by
// the nonce. // the nonce.
let deployer_address = case let deployer_address = test
.case
.steps .steps
.iter() .iter()
.filter_map(|step| match step { .filter_map(|step| match step {
@@ -626,16 +630,16 @@ where
), ),
) = try_join!( ) = try_join!(
cached_compiler.compile_contracts::<L>( cached_compiler.compile_contracts::<L>(
metadata, test.metadata,
metadata_file_path, test.metadata_file_path,
&mode, &test.mode,
config, config,
leader_deployed_libraries.as_ref() leader_deployed_libraries.as_ref()
), ),
cached_compiler.compile_contracts::<F>( cached_compiler.compile_contracts::<F>(
metadata, test.metadata,
metadata_file_path, test.metadata_file_path,
&mode, &test.mode,
config, config,
follower_deployed_libraries.as_ref() follower_deployed_libraries.as_ref()
) )
@@ -653,8 +657,8 @@ where
); );
let mut driver = CaseDriver::<L, F>::new( let mut driver = CaseDriver::<L, F>::new(
metadata, test.metadata,
case, test.case,
leader_node, leader_node,
follower_node, follower_node,
leader_state, leader_state,