5 releases
new 0.0.5 | Nov 5, 2024 |
---|---|
0.0.4 | Nov 5, 2024 |
0.0.3 | Oct 31, 2024 |
0.0.2 | Oct 31, 2024 |
0.0.1 | Oct 31, 2024 |
#247 in Testing
353 downloads per month
57KB
1.5K
SLoC
Bare Test
A test framework for testing the bare metal.
Usage
-
Install
ostool
.cargo install ostool
-
setup
.cargo/config.toml
[target.'cfg(all(target_os = "none"))'] runner = "ostool cargo-test" [build] target = "aarch64-unknown-none"
-
setup
cargo.toml
.[dev-dependencies] bare-test = "0.0.1" [build-dependencies] sparreal-macros = "0.0.1"
-
setup
build.rs
.fn main() { sparreal_macros::build_test_setup!(); }
-
new
tests
dir and addtests.rs
.#![no_std] #![no_main] #![feature(custom_test_frameworks)] #![test_runner(bare_test::test_runner)] #![reexport_test_harness_main = "test_main"] extern crate bare_test; #[bare_test::entry] fn main() { test_main(); } use bare_test::println; #[test_case] fn it_not_works() { println!("test2... "); assert_eq!(1, 2); } #[test_case] fn it_works1() { println!("test1... "); assert_eq!(1, 1); } #[test_case] fn test_uart(){ // map uart data register for using. let uart_data_reg = iomap(0x9000000.into(), 0x1000); // write to uart, then it will be print to the screen. unsafe{ uart_data_reg.write_volatile(b'A'); uart_data_reg.write_volatile(b'\n'); } println!("uart test passed!"); }
-
run
cargo test
.
Dependencies
~1.6–2.6MB
~52K SLoC