pub mod assertions;
pub mod test_context;
pub mod test_discoverer;
pub mod test_runner;
pub mod v8_bindings;
pub mod v8_test_executor; pub mod coverage;
pub mod enhanced_runner;
pub mod parallel_executor;
pub mod perf;
pub mod test_timeout;
pub use coverage::*;
pub use enhanced_runner::{EnhancedRunner, EnhancedRunnerConfig, EnhancedRunnerStats};
pub use parallel_executor::{ParallelConfig, ParallelExecutor};
pub use perf::*;
use std::collections::HashMap;
use std::sync::{Mutex, OnceLock};
pub use test_context::{AssertionResult, TestCase, TestResult, TestSuite};
pub use test_timeout::{TestTimeout, TimeoutConfig};
pub use v8_bindings::*;
pub use v8_test_executor::V8TestExecutor;
static TEST_REGISTRY: OnceLock<Mutex<HashMap<String, TestSuite>>> = OnceLock::new();
pub fn register_suite(suite: TestSuite) {
let registry = TEST_REGISTRY.get_or_init(|| Mutex::new(HashMap::new()));
let mut locked = registry.lock().unwrap();
locked.insert(suite.name.clone(), suite);
}
pub fn get_all_suites() -> HashMap<String, TestSuite> {
let registry = TEST_REGISTRY.get_or_init(|| Mutex::new(HashMap::new()));
let locked: _ = registry.lock().unwrap();
locked.clone()
}
pub fn clear_registry() {
if let Some(registry) = TEST_REGISTRY.get() {
let mut locked = registry.lock().unwrap();
locked.clear();
}
}