11use alloc:: sync:: Arc ;
22use core:: str:: FromStr ;
3- use std:: path:: PathBuf ;
43
54use cgp:: extra:: runtime:: HasRuntime ;
6- use eyre:: eyre;
7- use hermes_core:: runtime_components:: traits:: { CanCreateDir , CanExecCommand , CanSleep } ;
8- use hermes_core:: test_components:: setup:: traits:: {
9- FullNodeForker , FullNodeForkerComponent , FullNodeHalter , FullNodeHalterComponent ,
10- } ;
5+ use hermes_core:: runtime_components:: traits:: { CanCreateDir , CanSleep } ;
6+ use hermes_core:: test_components:: setup:: traits:: { FullNodeForker , FullNodeForkerComponent } ;
117use hermes_cosmos_core:: test_components:: bootstrap:: traits:: CanStartChainFullNodes ;
128use hermes_cosmos_relayer:: contexts:: { CosmosBuilder , CosmosChain } ;
139use hermes_error:: HermesError ;
@@ -21,47 +17,6 @@ use crate::impls::copy_dir_recursive;
2117
2218pub struct ForkSecondFullNode ;
2319
24- #[ cgp_provider( FullNodeHalterComponent ) ]
25- impl FullNodeHalter < CosmosBinaryChannelTestDriver > for ForkSecondFullNode {
26- async fn halt_full_node (
27- driver : & CosmosBinaryChannelTestDriver ,
28- chain_id : String ,
29- ) -> Result < ( ) , HermesError > {
30- let runtime = driver. chain_driver_a . chain . runtime . clone ( ) ;
31- let node_pid = if chain_id == driver. chain_driver_a . chain . chain_id . to_string ( ) {
32- driver
33- . chain_driver_a
34- . chain_processes
35- . first ( )
36- . expect ( "Failed to retrieve Chain Driver A chain process" )
37- . id ( )
38- . expect ( "failed to retrieve Chain Driver A chain process ID" )
39- } else if chain_id == driver. chain_driver_b . chain . chain_id . to_string ( ) {
40- driver
41- . chain_driver_b
42- . chain_processes
43- . first ( )
44- . expect ( "Failed to retrieve Chain Driver B chain process" )
45- . id ( )
46- . expect ( "failed to retrieve Chain Driver B chain process ID" )
47- } else {
48- return Err ( eyre ! ( "Unknown chain ID: {chain_id}" ) . into ( ) ) ;
49- } ;
50-
51- // Stop full node
52- // `kill` is used here instead of `Child::kill()` as the `kill()` method requires
53- // the child process to be mutable.
54- runtime
55- . exec_command (
56- & PathBuf :: from ( "kill" . to_string ( ) ) ,
57- & [ "-s" , "KILL" , & node_pid. to_string ( ) ] ,
58- )
59- . await ?;
60-
61- Ok ( ( ) )
62- }
63- }
64-
6520#[ cgp_provider( FullNodeForkerComponent ) ]
6621impl FullNodeForker < CosmosBinaryChannelTestDriver > for ForkSecondFullNode {
6722 async fn fork_full_node (
0 commit comments