rhi

Coordinated trade for connected markets
git clone https://radroots.dev/git/rhi.git
Log | Files | Refs | README | LICENSE

commit 0014a5b110627470f20fb7c7c6a19019da1a81ab
parent 75c7df76ef96eb73ad45ecb28966507f7bce5633
Author: triesap <tyson@radroots.org>
Date:   Sun, 17 May 2026 01:56:24 +0000

tests: serialize run hook assertions

Diffstat:
Msrc/main.rs | 13+++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/main.rs b/src/main.rs @@ -233,6 +233,13 @@ mod tests { use std::path::PathBuf; use std::process::ExitCode; + static RUN_HOOK_TEST_LOCK: std::sync::OnceLock<std::sync::Mutex<()>> = + std::sync::OnceLock::new(); + + fn run_hook_test_lock() -> &'static std::sync::Mutex<()> { + RUN_HOOK_TEST_LOCK.get_or_init(|| std::sync::Mutex::new(())) + } + fn minimal_settings() -> config::Settings { config::Settings { metadata: serde_json::from_str(r#"{"name":"rhi-test"}"#).expect("metadata"), @@ -325,6 +332,9 @@ mod tests { #[tokio::test] async fn run_uses_injected_config_loader_result() { + let _guard = run_hook_test_lock() + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner); let args = cli_args { service: radroots_runtime::RadrootsServiceCliArgs { config: Some(PathBuf::from("config.toml")), @@ -343,6 +353,9 @@ mod tests { #[tokio::test] async fn run_returns_error_when_loader_hook_is_absent() { + let _guard = run_hook_test_lock() + .lock() + .unwrap_or_else(std::sync::PoisonError::into_inner); *run_load_hook() .lock() .unwrap_or_else(std::sync::PoisonError::into_inner) = None;