Files
asterinas/kernel/libs/comp-sys/component/tests/init-order/src/main.rs
2024-02-28 16:30:48 +08:00

25 lines
780 B
Rust

// SPDX-License-Identifier: MPL-2.0
use std::sync::atomic::{Ordering::Relaxed, AtomicBool};
use component::init_component;
static HAS_INIT: AtomicBool = AtomicBool::new(false);
#[init_component]
fn kernel_init() -> Result<(), component::ComponentInitError> {
assert_eq!(first_init::HAS_INIT.load(Relaxed), true);
assert_eq!(second_init::HAS_INIT.load(Relaxed), true);
assert_eq!(HAS_INIT.load(Relaxed), false);
HAS_INIT.store(true, Relaxed);
Ok(())
}
fn main() {
simple_logger::init_with_level(log::Level::Info).unwrap();
component::init_all(component::parse_metadata!()).unwrap();
assert_eq!(first_init::HAS_INIT.load(Relaxed), true);
assert_eq!(second_init::HAS_INIT.load(Relaxed), true);
assert_eq!(HAS_INIT.load(Relaxed), true);
}