From 460215a8ce0af9462920362e271c669f4e5f55fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrick=20Jos=C3=A9=20Pereira?= Date: Thu, 30 Nov 2023 12:06:01 -0300 Subject: [PATCH] helper: Add develp with test using webrtc and task count MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Patrick José Pereira --- src/helper/develop.rs | 56 +++++++++++++++++++++++++++++++++++++++++++ src/helper/mod.rs | 1 + 2 files changed, 57 insertions(+) create mode 100644 src/helper/develop.rs diff --git a/src/helper/develop.rs b/src/helper/develop.rs new file mode 100644 index 00000000..c48ee1d9 --- /dev/null +++ b/src/helper/develop.rs @@ -0,0 +1,56 @@ +use crate::cli; +use crate::helper; +use anyhow::Result; +use core::time::Duration; +use std::thread; +use thirtyfour::prelude::*; +use tokio::runtime::Runtime; +use tracing::*; + +async fn task(mut counter: i32) -> Result<()> { + info!("Started webrtc test.."); + + let mut caps = DesiredCapabilities::chrome(); + let _ = caps.set_headless(); + + let port = cli::manager::enable_webrtc_task_test().unwrap(); + let driver = WebDriver::new(&format!("http://localhost:{}", port), 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?.click().await?; + } + + counter += 1; + + info!("Restarted webrtc {} times", counter); + if helper::threads::process_task_counter() > 100 { + error!("Thead leak detected!"); + std::process::exit(-1); + } + } +} + +pub fn start_check_tasks_on_webrtc_reconnects() { + let counter = 0; + thread::spawn(move || { + let rt = Runtime::new().unwrap(); + rt.block_on(async move { + loop { + if let Err(error) = task(counter).await { + error!("WebRTC Checker Task failed: {error:#?}"); + } + } + }); + 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;