tests/functional/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2use 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}