1use std::sync::OnceLock;
3
4use libtest_mimic::Trial;
5
6use crate::suite::TestSystemState;
7
8use super::suite::TestSuite;
9
10mod maps;
11mod pins;
12mod seabeectl_local;
13mod userspace;
14
15pub static TEST_SYSTEM_STATE: OnceLock<TestSystemState> = OnceLock::new();
16pub static UNUSED_CUSTOM_STATE: OnceLock<u32> = OnceLock::new();
17
18pub struct FunctionalTestSuite;
19
20impl TestSuite for FunctionalTestSuite {
21 type CustomTestState = u32;
22
23 fn system_state() -> &'static OnceLock<crate::suite::TestSystemState> {
24 &TEST_SYSTEM_STATE
25 }
26
27 fn custom_state() -> &'static OnceLock<Self::CustomTestState> {
28 &UNUSED_CUSTOM_STATE
29 }
30
31 fn tests() -> Vec<Trial> {
32 let mut tests = Vec::new();
33 tests.extend(maps::tests());
34 tests.extend(pins::tests());
35 tests.extend(userspace::tests());
36 tests.extend(seabeectl_local::tests());
37 tests
38 }
39}