diff --git a/13_integrated_testing/Cargo.toml b/13_integrated_testing/Cargo.toml index 0fe3c710..f0049260 100644 --- a/13_integrated_testing/Cargo.toml +++ b/13_integrated_testing/Cargo.toml @@ -40,9 +40,9 @@ test = false # List of tests without harness. [[test]] -name = "00_interface_sanity_console" +name = "00_console_sanity" harness = false [[test]] -name = "02_arch_exception_handling_sync_page_fault" +name = "02_exception_sync_page_fault" harness = false diff --git a/13_integrated_testing/README.md b/13_integrated_testing/README.md index 68af45e2..2a628647 100644 --- a/13_integrated_testing/README.md +++ b/13_integrated_testing/README.md @@ -500,8 +500,7 @@ again, just like in the `unit test` case. By default, `cargo xtest` will pull in the test harness (that's the official name for the generated `main()` function) into integration tests as well. This gives you a further means of partitioning -your test code into individual chunks. For example, take a look at -`tests/01_interface_sanity_timer.rs`: +your test code into individual chunks. For example, take a look at `tests/01_timer_sanity.rs`: ```rust //! Timer sanity tests. @@ -556,11 +555,11 @@ them: ```toml # List of tests without harness. [[test]] -name = "00_interface_sanity_console" +name = "00_console_sanity" harness = false [[test]] -name = "02_arch_exception_handling_sync_page_fault" +name = "02_exception_sync_page_fault" harness = false ``` @@ -588,8 +587,8 @@ fn _panic_exit() -> ! { Integration tests in `$CRATE/tests/` can now override it according to their needs, because depending on the kind of test, a `panic!` could mean success or failure. For example, -`tests/02_arch_exception_handling_sync_page_fault.rs` is intentionally causing a page fault, so the -wanted outcome is a `panic!`. Here is the whole test (minus some inline comments): +`tests/02_exception_sync_page_fault.rs` is intentionally causing a page fault, so the wanted outcome +is a `panic!`. Here is the whole test (minus some inline comments): ```rust //! Page faults must result in synchronous exceptions. @@ -645,8 +644,8 @@ little overhead. It basically works like this: 3. Spawn `QEMU` and attach to the serial console. 4. Run the console subtests. -Here is an excerpt from `00_interface_sanity_console.rb` showing a subtest that does a handshake -with the kernel over the console: +Here is an excerpt from `00_console_sanity.rb` showing a subtest that does a handshake with the +kernel over the console: ```ruby TIMEOUT_SECS = 3 @@ -665,7 +664,7 @@ end ``` The subtest first sends `"ABC"` over the console to the kernel, and then expects to receive -`"OK1234"` back. On the kernel side, it looks like this in `00_interface_sanity_console.rs`: +`"OK1234"` back. On the kernel side, it looks like this in `00_console_sanity.rs`: ```rust #![feature(format_args_nl)] @@ -697,22 +696,22 @@ Believe it or not, that is all. There are three ways you can run tests: 1. `make test` will run all tests back-to-back. 2. `TEST=unit make test` will run `libkernel`'s unit tests. 3. `TEST=TEST_NAME make test` will run a specficic integration test. - - For example, `TEST=01_interface_sanity_timer make test` + - For example, `TEST=01_timer_sanity make test` ```console $ make test [...] -RUSTFLAGS="-C link-arg=-Tsrc/bsp/rpi/link.ld -C target-cpu=cortex-a53 -D warnings -D missing_docs" cargo xtest --target=aarch64-unknown-none-softfloat --features bsp_rpi3 --release +RUSTFLAGS="-C link-arg=-Tsrc/bsp/raspberrypi/link.ld -C target-cpu=cortex-a53 -D warnings -D missing_docs" cargo xtest --target=aarch64-unknown-none-softfloat --features bsp_rpi3 --release Finished release [optimized] target(s) in 0.01s - Running target/aarch64-unknown-none-softfloat/release/deps/libkernel-e34f3f4734d1b219 + Running target/aarch64-unknown-none-softfloat/release/deps/libkernel-4cc6412ddf631982 ------------------------------------------------------------------- 🦀 Running 5 tests ------------------------------------------------------------------- - 1. test_runner_executes_in_kernel_mode.......................[ok] - 2. bss_section_is_sane.......................................[ok] - 3. virt_mem_layout_sections_are_64KiB_aligned................[ok] - 4. virt_mem_layout_has_no_overlaps...........................[ok] + 1. bss_section_is_sane.......................................[ok] + 2. virt_mem_layout_sections_are_64KiB_aligned................[ok] + 3. virt_mem_layout_has_no_overlaps...........................[ok] + 4. test_runner_executes_in_kernel_mode.......................[ok] 5. zero_volatile_works.......................................[ok] ------------------------------------------------------------------- @@ -720,7 +719,7 @@ RUSTFLAGS="-C link-arg=-Tsrc/bsp/rpi/link.ld -C target-cpu=cortex-a53 -D warning ------------------------------------------------------------------- - Running target/aarch64-unknown-none-softfloat/release/deps/00_interface_sanity_console-fd36bc6543537769 + Running target/aarch64-unknown-none-softfloat/release/deps/00_console_sanity-557819b436f15a18 ------------------------------------------------------------------- 🦀 Running 3 console-based tests ------------------------------------------------------------------- @@ -730,11 +729,11 @@ RUSTFLAGS="-C link-arg=-Tsrc/bsp/rpi/link.ld -C target-cpu=cortex-a53 -D warning 3. Receive statistics........................................[ok] ------------------------------------------------------------------- - ✅ Success: 00_interface_sanity_console + ✅ Success: 00_console_sanity ------------------------------------------------------------------- - Running target/aarch64-unknown-none-softfloat/release/deps/01_interface_sanity_timer-9ddd4857e51af91d + Running target/aarch64-unknown-none-softfloat/release/deps/01_timer_sanity-1e25e7d559a9009f ------------------------------------------------------------------- 🦀 Running 3 tests ------------------------------------------------------------------- @@ -744,11 +743,11 @@ RUSTFLAGS="-C link-arg=-Tsrc/bsp/rpi/link.ld -C target-cpu=cortex-a53 -D warning 3. spin_accuracy_check_1_second..............................[ok] ------------------------------------------------------------------- - ✅ Success: 01_interface_sanity_timer + ✅ Success: 01_timer_sanity ------------------------------------------------------------------- - Running target/aarch64-unknown-none-softfloat/release/deps/02_arch_exception_handling_sync_page_fault-8e8e460dd9041f11 + Running target/aarch64-unknown-none-softfloat/release/deps/02_exception_sync_page_fault-14172ce39b3fae1c ------------------------------------------------------------------- 🦀 Testing synchronous exception handling by causing a page fault ------------------------------------------------------------------- @@ -763,7 +762,7 @@ RUSTFLAGS="-C link-arg=-Tsrc/bsp/rpi/link.ld -C target-cpu=cortex-a53 -D warning [...] ------------------------------------------------------------------- - ✅ Success: 02_arch_exception_handling_sync_page_fault + ✅ Success: 02_exception_sync_page_fault ------------------------------------------------------------------- ``` @@ -811,11 +810,11 @@ diff -uNr 12_exceptions_part1_groundwork/Cargo.toml 13_integrated_testing/Cargo. + +# List of tests without harness. +[[test]] -+name = "00_interface_sanity_console" ++name = "00_console_sanity" +harness = false + +[[test]] -+name = "02_arch_exception_handling_sync_page_fault" ++name = "02_exception_sync_page_fault" +harness = false diff -uNr 12_exceptions_part1_groundwork/Makefile 13_integrated_testing/Makefile @@ -1663,9 +1662,9 @@ diff -uNr 12_exceptions_part1_groundwork/test-macros/src/lib.rs 13_integrated_te + .into() +} -diff -uNr 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rb 13_integrated_testing/tests/00_interface_sanity_console.rb ---- 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rb -+++ 13_integrated_testing/tests/00_interface_sanity_console.rb +diff -uNr 12_exceptions_part1_groundwork/tests/00_console_sanity.rb 13_integrated_testing/tests/00_console_sanity.rb +--- 12_exceptions_part1_groundwork/tests/00_console_sanity.rb ++++ 13_integrated_testing/tests/00_console_sanity.rb @@ -0,0 +1,50 @@ +# frozen_string_literal: true + @@ -1718,9 +1717,9 @@ diff -uNr 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rb 13 + [TxRxHandshake.new, TxStatistics.new, RxStatistics.new] +end -diff -uNr 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rs 13_integrated_testing/tests/00_interface_sanity_console.rs ---- 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rs -+++ 13_integrated_testing/tests/00_interface_sanity_console.rs +diff -uNr 12_exceptions_part1_groundwork/tests/00_console_sanity.rs 13_integrated_testing/tests/00_console_sanity.rs +--- 12_exceptions_part1_groundwork/tests/00_console_sanity.rs ++++ 13_integrated_testing/tests/00_console_sanity.rs @@ -0,0 +1,36 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +// @@ -1759,9 +1758,9 @@ diff -uNr 12_exceptions_part1_groundwork/tests/00_interface_sanity_console.rs 13 + loop {} +} -diff -uNr 12_exceptions_part1_groundwork/tests/01_interface_sanity_timer.rs 13_integrated_testing/tests/01_interface_sanity_timer.rs ---- 12_exceptions_part1_groundwork/tests/01_interface_sanity_timer.rs -+++ 13_integrated_testing/tests/01_interface_sanity_timer.rs +diff -uNr 12_exceptions_part1_groundwork/tests/01_timer_sanity.rs 13_integrated_testing/tests/01_timer_sanity.rs +--- 12_exceptions_part1_groundwork/tests/01_timer_sanity.rs ++++ 13_integrated_testing/tests/01_timer_sanity.rs @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +// @@ -1814,9 +1813,9 @@ diff -uNr 12_exceptions_part1_groundwork/tests/01_interface_sanity_timer.rs 13_i + assert_eq!((t2 - t1).as_secs(), 1) +} -diff -uNr 12_exceptions_part1_groundwork/tests/02_arch_exception_handling_sync_page_fault.rs 13_integrated_testing/tests/02_arch_exception_handling_sync_page_fault.rs ---- 12_exceptions_part1_groundwork/tests/02_arch_exception_handling_sync_page_fault.rs -+++ 13_integrated_testing/tests/02_arch_exception_handling_sync_page_fault.rs +diff -uNr 12_exceptions_part1_groundwork/tests/02_exception_sync_page_fault.rs 13_integrated_testing/tests/02_exception_sync_page_fault.rs +--- 12_exceptions_part1_groundwork/tests/02_exception_sync_page_fault.rs ++++ 13_integrated_testing/tests/02_exception_sync_page_fault.rs @@ -0,0 +1,44 @@ +// SPDX-License-Identifier: MIT OR Apache-2.0 +// diff --git a/13_integrated_testing/tests/00_interface_sanity_console.rb b/13_integrated_testing/tests/00_console_sanity.rb similarity index 100% rename from 13_integrated_testing/tests/00_interface_sanity_console.rb rename to 13_integrated_testing/tests/00_console_sanity.rb diff --git a/13_integrated_testing/tests/00_interface_sanity_console.rs b/13_integrated_testing/tests/00_console_sanity.rs similarity index 100% rename from 13_integrated_testing/tests/00_interface_sanity_console.rs rename to 13_integrated_testing/tests/00_console_sanity.rs diff --git a/13_integrated_testing/tests/01_interface_sanity_timer.rs b/13_integrated_testing/tests/01_timer_sanity.rs similarity index 100% rename from 13_integrated_testing/tests/01_interface_sanity_timer.rs rename to 13_integrated_testing/tests/01_timer_sanity.rs diff --git a/13_integrated_testing/tests/02_arch_exception_handling_sync_page_fault.rs b/13_integrated_testing/tests/02_exception_sync_page_fault.rs similarity index 100% rename from 13_integrated_testing/tests/02_arch_exception_handling_sync_page_fault.rs rename to 13_integrated_testing/tests/02_exception_sync_page_fault.rs diff --git a/doc/13_demo.gif b/doc/13_demo.gif index 4482c621..959e35ab 100644 Binary files a/doc/13_demo.gif and b/doc/13_demo.gif differ