diff --git a/src/helper/develop.rs b/src/helper/develop.rs new file mode 100644 index 00000000..f79289c5 --- /dev/null +++ b/src/helper/develop.rs @@ -0,0 +1,45 @@ +use crate::helper; +use core::time::Duration; +use std::thread; +use thirtyfour::prelude::*; +use tokio::runtime::Runtime; +use tracing::*; + +pub fn start_check_tasks_on_webrtc_reconnects() { + let mut counter = 0; + thread::spawn(move || { + let rt = Runtime::new().unwrap(); + rt.block_on(async move { + info!("Started webrtc test.."); + let mut caps = DesiredCapabilities::chrome(); + let _ = caps.set_headless(); + let driver = WebDriver::new("http://localhost:9515", caps) + .await + .expect("Failed to create web driver."); + driver + .goto("http://0.0.0.0:6020/webrtc/index.html") + .await + .expect("Failed to connect to local webrtc page."); + loop { + for button in ["add-consumer", "add-session", "remove-all-consumers"] { + thread::sleep(Duration::from_secs(3)); + driver + .find(By::Id(button)) + .await + .unwrap() + .click() + .await + .unwrap(); + } + counter += 1; + info!("Restarted webrtc {} times", counter); + if helper::threads::process_task_counter() > 100 { + error!("Thead leak detected!"); + std::process::exit(-1); + } + } + }); + error!("Webrtc test failed internally."); + std::process::exit(-1); + }); +} diff --git a/src/helper/mod.rs b/src/helper/mod.rs index 28f540e6..9b871db5 100644 --- a/src/helper/mod.rs +++ b/src/helper/mod.rs @@ -1,3 +1,4 @@ #[macro_use] +pub mod develop; pub mod macros; pub mod threads;