bare-test 0.0.4

A test framework for bare metal.
docs.rs failed to build bare-test-0.0.4
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: bare-test-0.8.1

Bare Test

A test framework for testing the bare metal.

Usage

  1. Install ostool.

    cargo install ostool
    
  2. setup .cargo/config.toml

    [target.'cfg(all(target_os = "none"))']
    
    runner = "ostool cargo-test"
    
    [build]
    
    target = "aarch64-unknown-none"
    
    
  3. setup cargo.toml.

    [dev-dependencies]
    
    bare-test = "0.0.1"
    
    
    
    [build-dependencies]
    
    sparreal-macros = "0.0.1"
    
    
  4. setup build.rs.

    fn main() {
        sparreal_macros::build_test_setup!();
    }
    
  5. new tests dir and add tests.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!");
    }
    
  6. run cargo test.