#![allow(dead_code)] #![allow(unused)] use std::{ net::SocketAddr, time::{Duration, Instant}, path::Path, io::{BufReader, BufRead}, fs::File, borrow::BorrowMut, env, }; use dfx::{ connection::SocketAcceptor, session::{Session, SessionSettings}, message_store::DefaultStoreFactory, data_dictionary_provider::DefaultDataDictionaryProvider, logging::PrintlnLogFactory, message::DefaultMessageFactory, }; use crate::runner; use crate::common::test_application; use crate::common::test_application::TestApplication; pub fn intern_main(i: usize, cfg: &str, path: &str) { let path = std::path::Path::new(path); let app = TestApplication; let session_settings = SessionSettings::from_file(cfg).unwrap(); let mut acceptor = SocketAcceptor::new( session_settings, app, DefaultStoreFactory::new(), DefaultDataDictionaryProvider::new(), PrintlnLogFactory::new(), DefaultMessageFactory::new(), ); let steps = runner::steps(format!("{}", path.display()).as_str()); acceptor.start(); while acceptor.endpoints().len() == 0 { std::thread::sleep(Duration::from_millis(10)); } let endpoint = acceptor.endpoints()[0]; let runner_thread = runner::create_thread(steps, endpoint.port().into(), format!("{}", path.display()).as_str()); let start = Instant::now(); while !runner_thread.is_finished() { if Instant::now() - start > Duration::from_secs(120) { println!("ERROR: Timeout: {runner_thread:?}"); break; } std::thread::sleep(Duration::from_millis(10)); } acceptor.stop(); match runner_thread.join() { Ok(result) => match result { Ok(()) => {}, Err(message) => panic!("Steps failed:\n{message}\n") }, Err(_) => println!("Failed to join thread."), } println!("Finished {i}"); println!("---------------------------------------"); TestApplication::clear(); } pub fn main() { let args: Vec = env::args().collect(); eprintln!("{args:?}"); assert!(args.len() >= 4); let (i, cfg, path) = (&args[1], &args[2], &args[3]); let i = i.parse().unwrap(); intern_main(i, cfg, path); }