LoGin 91e9d4ab55
实现unified-init库,支持收集初始化函数到一个数组,并统一初始化 (#474)
* 添加“统一初始化”的过程宏,并把SystemError独立成crate

* 使用unified-init来初始化fbmem

* 更新workflow,增加内核自动化静态测试
2023-12-25 23:12:27 +08:00

64 lines
1.3 KiB
Rust

//! 需要测试的时候可以在这里写测试代码,
//! 然后在当前目录执行 `cargo expand --bin unified-init-expand`
//! 就可以看到把proc macro展开后的代码了
#![no_std]
fn main() {
todo!()
}
#[cfg(test)]
mod tests {
use system_error::SystemError;
use unified_init::define_unified_initializer_slice;
use unified_init_macros::unified_init;
use super::*;
#[test]
fn no_element() {
define_unified_initializer_slice!(TEST_0);
assert_eq!(TEST_0.len(), 0);
}
#[test]
fn no_element_ne() {
define_unified_initializer_slice!(TEST_0_NE);
#[unified_init(TEST_0_NE)]
fn x() -> Result<(), SystemError> {
todo!()
}
assert_ne!(TEST_0_NE.len(), 0);
}
#[test]
fn one_element() {
define_unified_initializer_slice!(TEST_1);
#[unified_init(TEST_1)]
fn x() -> Result<(), SystemError> {
todo!()
}
assert_eq!(TEST_1.len(), 1);
}
#[test]
fn two_elements() {
define_unified_initializer_slice!(TEST_2);
#[unified_init(TEST_2)]
fn x() -> Result<(), SystemError> {
todo!()
}
#[unified_init(TEST_2)]
fn y() -> Result<(), SystemError> {
todo!()
}
assert_eq!(TEST_2.len(), 2);
}
}