commit 0014a5b110627470f20fb7c7c6a19019da1a81ab
parent 75c7df76ef96eb73ad45ecb28966507f7bce5633
Author: triesap <tyson@radroots.org>
Date: Sun, 17 May 2026 01:56:24 +0000
tests: serialize run hook assertions
Diffstat:
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;