From 612efaf0c436489e1cf09c2e87b329a7318f71b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Wed, 3 Mar 2021 08:53:03 +0100 Subject: [PATCH 1/5] Use panic_semihosting for all examples --- Cargo.toml | 1 - examples/big-struct-opt.rs | 2 +- examples/not-sync.rs | 2 +- examples/schedule.rs | 2 +- examples/t-binds.rs | 2 +- examples/t-cfg-resources.rs | 2 +- examples/t-cfg.rs | 2 +- examples/t-late-not-send.rs | 2 +- examples/t-resource.rs | 2 +- examples/t-schedule-core-stable.rs | 2 +- examples/t-schedule.rs | 2 +- examples/t-spawn.rs | 2 +- 12 files changed, 11 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 12b25c432e..dd4633b148 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,6 @@ version_check = "0.9" [dev-dependencies] lm3s6965 = "0.1.3" -panic-halt = "0.2.0" cortex-m-semihosting = "0.3.3" [dev-dependencies.panic-semihosting] diff --git a/examples/big-struct-opt.rs b/examples/big-struct-opt.rs index dc6e72f78d..e6a5c17247 100644 --- a/examples/big-struct-opt.rs +++ b/examples/big-struct-opt.rs @@ -6,7 +6,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; /// Some big struct pub struct BigStruct { diff --git a/examples/not-sync.rs b/examples/not-sync.rs index 8189da51bf..f01d40432a 100644 --- a/examples/not-sync.rs +++ b/examples/not-sync.rs @@ -6,7 +6,7 @@ #![no_std] use core::marker::PhantomData; -use panic_halt as _; +use panic_semihosting as _; pub struct NotSync { _0: PhantomData<*const ()>, diff --git a/examples/schedule.rs b/examples/schedule.rs index cdbdc0dedd..d6d4499877 100644 --- a/examples/schedule.rs +++ b/examples/schedule.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; // NOTE: does NOT work on QEMU! #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] diff --git a/examples/t-binds.rs b/examples/t-binds.rs index 60afa35ebe..fbc89e88af 100644 --- a/examples/t-binds.rs +++ b/examples/t-binds.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965)] mod app { diff --git a/examples/t-cfg-resources.rs b/examples/t-cfg-resources.rs index 990b01ff8e..1adcb9054e 100644 --- a/examples/t-cfg-resources.rs +++ b/examples/t-cfg-resources.rs @@ -3,7 +3,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965)] mod app { diff --git a/examples/t-cfg.rs b/examples/t-cfg.rs index ff06ee8eee..ef591c4d3e 100644 --- a/examples/t-cfg.rs +++ b/examples/t-cfg.rs @@ -3,7 +3,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0, QEI0])] mod app { diff --git a/examples/t-late-not-send.rs b/examples/t-late-not-send.rs index dae0aa99ec..579f843675 100644 --- a/examples/t-late-not-send.rs +++ b/examples/t-late-not-send.rs @@ -5,7 +5,7 @@ use core::marker::PhantomData; -use panic_halt as _; +use panic_semihosting as _; pub struct NotSend { _0: PhantomData<*const ()>, diff --git a/examples/t-resource.rs b/examples/t-resource.rs index 164ea841b9..6e83069d7b 100644 --- a/examples/t-resource.rs +++ b/examples/t-resource.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965)] mod app { diff --git a/examples/t-schedule-core-stable.rs b/examples/t-schedule-core-stable.rs index adcc0b695b..98d42ce721 100644 --- a/examples/t-schedule-core-stable.rs +++ b/examples/t-schedule-core-stable.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { diff --git a/examples/t-schedule.rs b/examples/t-schedule.rs index 259b22655f..bd0ab668b3 100644 --- a/examples/t-schedule.rs +++ b/examples/t-schedule.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { diff --git a/examples/t-spawn.rs b/examples/t-spawn.rs index cc7754e858..ca5c61b2e3 100644 --- a/examples/t-spawn.rs +++ b/examples/t-spawn.rs @@ -5,7 +5,7 @@ #![no_main] #![no_std] -use panic_halt as _; +use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { From a5795a8f45f73099d88817fc8eb6c265689b862e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Wed, 3 Mar 2021 08:55:19 +0100 Subject: [PATCH 2/5] Remove keyword single for all tests --- tests/{single.rs => tests.rs} | 0 ui/{single => }/exception-invalid.rs | 0 ui/{single => }/exception-invalid.stderr | 0 ui/{single => }/extern-interrupt-not-enough.rs | 0 ui/{single => }/extern-interrupt-not-enough.stderr | 0 ui/{single => }/extern-interrupt-used.rs | 0 ui/{single => }/extern-interrupt-used.stderr | 0 ui/{single => }/local-cfg-task-local-err.rs | 0 ui/{single => }/local-cfg-task-local-err.stderr | 0 ui/{single => }/local-err.rs | 0 ui/{single => }/local-err.stderr | 0 ui/{single => }/locals-cfg.rs | 0 ui/{single => }/locals-cfg.stderr | 0 ui/{single => }/resources-cfg.rs | 0 ui/{single => }/resources-cfg.stderr | 0 ui/{single => }/task-priority-too-high.rs | 0 ui/{single => }/task-priority-too-high.stderr | 0 17 files changed, 0 insertions(+), 0 deletions(-) rename tests/{single.rs => tests.rs} (100%) rename ui/{single => }/exception-invalid.rs (100%) rename ui/{single => }/exception-invalid.stderr (100%) rename ui/{single => }/extern-interrupt-not-enough.rs (100%) rename ui/{single => }/extern-interrupt-not-enough.stderr (100%) rename ui/{single => }/extern-interrupt-used.rs (100%) rename ui/{single => }/extern-interrupt-used.stderr (100%) rename ui/{single => }/local-cfg-task-local-err.rs (100%) rename ui/{single => }/local-cfg-task-local-err.stderr (100%) rename ui/{single => }/local-err.rs (100%) rename ui/{single => }/local-err.stderr (100%) rename ui/{single => }/locals-cfg.rs (100%) rename ui/{single => }/locals-cfg.stderr (100%) rename ui/{single => }/resources-cfg.rs (100%) rename ui/{single => }/resources-cfg.stderr (100%) rename ui/{single => }/task-priority-too-high.rs (100%) rename ui/{single => }/task-priority-too-high.stderr (100%) diff --git a/tests/single.rs b/tests/tests.rs similarity index 100% rename from tests/single.rs rename to tests/tests.rs diff --git a/ui/single/exception-invalid.rs b/ui/exception-invalid.rs similarity index 100% rename from ui/single/exception-invalid.rs rename to ui/exception-invalid.rs diff --git a/ui/single/exception-invalid.stderr b/ui/exception-invalid.stderr similarity index 100% rename from ui/single/exception-invalid.stderr rename to ui/exception-invalid.stderr diff --git a/ui/single/extern-interrupt-not-enough.rs b/ui/extern-interrupt-not-enough.rs similarity index 100% rename from ui/single/extern-interrupt-not-enough.rs rename to ui/extern-interrupt-not-enough.rs diff --git a/ui/single/extern-interrupt-not-enough.stderr b/ui/extern-interrupt-not-enough.stderr similarity index 100% rename from ui/single/extern-interrupt-not-enough.stderr rename to ui/extern-interrupt-not-enough.stderr diff --git a/ui/single/extern-interrupt-used.rs b/ui/extern-interrupt-used.rs similarity index 100% rename from ui/single/extern-interrupt-used.rs rename to ui/extern-interrupt-used.rs diff --git a/ui/single/extern-interrupt-used.stderr b/ui/extern-interrupt-used.stderr similarity index 100% rename from ui/single/extern-interrupt-used.stderr rename to ui/extern-interrupt-used.stderr diff --git a/ui/single/local-cfg-task-local-err.rs b/ui/local-cfg-task-local-err.rs similarity index 100% rename from ui/single/local-cfg-task-local-err.rs rename to ui/local-cfg-task-local-err.rs diff --git a/ui/single/local-cfg-task-local-err.stderr b/ui/local-cfg-task-local-err.stderr similarity index 100% rename from ui/single/local-cfg-task-local-err.stderr rename to ui/local-cfg-task-local-err.stderr diff --git a/ui/single/local-err.rs b/ui/local-err.rs similarity index 100% rename from ui/single/local-err.rs rename to ui/local-err.rs diff --git a/ui/single/local-err.stderr b/ui/local-err.stderr similarity index 100% rename from ui/single/local-err.stderr rename to ui/local-err.stderr diff --git a/ui/single/locals-cfg.rs b/ui/locals-cfg.rs similarity index 100% rename from ui/single/locals-cfg.rs rename to ui/locals-cfg.rs diff --git a/ui/single/locals-cfg.stderr b/ui/locals-cfg.stderr similarity index 100% rename from ui/single/locals-cfg.stderr rename to ui/locals-cfg.stderr diff --git a/ui/single/resources-cfg.rs b/ui/resources-cfg.rs similarity index 100% rename from ui/single/resources-cfg.rs rename to ui/resources-cfg.rs diff --git a/ui/single/resources-cfg.stderr b/ui/resources-cfg.stderr similarity index 100% rename from ui/single/resources-cfg.stderr rename to ui/resources-cfg.stderr diff --git a/ui/single/task-priority-too-high.rs b/ui/task-priority-too-high.rs similarity index 100% rename from ui/single/task-priority-too-high.rs rename to ui/task-priority-too-high.rs diff --git a/ui/single/task-priority-too-high.stderr b/ui/task-priority-too-high.stderr similarity index 100% rename from ui/single/task-priority-too-high.stderr rename to ui/task-priority-too-high.stderr From 48613f568b31a29e5c615b9ee59432c177d67b26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Thu, 21 Jan 2021 10:17:33 +0100 Subject: [PATCH 3/5] Update the tests file to find the tests --- tests/tests.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/tests.rs b/tests/tests.rs index b5d480c7ae..9fb88a1bba 100644 --- a/tests/tests.rs +++ b/tests/tests.rs @@ -3,5 +3,5 @@ use trybuild::TestCases; #[test] fn ui() { let t = TestCases::new(); - t.compile_fail("ui/single/*.rs"); + t.compile_fail("ui/*.rs"); } From 8ec505c495197fbd5ca216cf1431bda0dd7c1f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Tue, 2 Mar 2021 23:45:22 +0100 Subject: [PATCH 4/5] Update the GHA job to run the tests test --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d9be52008e..e5f9943400 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -474,7 +474,7 @@ jobs: with: use-cross: false command: test - args: --test single --features __v7 + args: --test tests --features __v7 # Run test suite for thumbv6m testv6: @@ -515,7 +515,7 @@ jobs: with: use-cross: false command: test - args: --test single + args: --test tests # Build documentation, check links docs: From 5e5fbf0ee9b254ec7d61f3f820168f11cb6a2c14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Tj=C3=A4der?= Date: Wed, 3 Mar 2021 09:11:24 +0100 Subject: [PATCH 5/5] Fix the UI tests, remove panic_halt --- ui/locals-cfg.rs | 3 +- ui/locals-cfg.stderr | 26 +++++++--------- ui/resources-cfg.rs | 3 +- ui/resources-cfg.stderr | 66 +++++++++++++++++++---------------------- 4 files changed, 44 insertions(+), 54 deletions(-) diff --git a/ui/locals-cfg.rs b/ui/locals-cfg.rs index 72e2acae53..170d302610 100644 --- a/ui/locals-cfg.rs +++ b/ui/locals-cfg.rs @@ -1,5 +1,6 @@ #![no_main] -use panic_halt as _; + +use panic_semihosting as _; #[rtic::app(device = lm3s6965, dispatchers = [SSI0])] mod app { diff --git a/ui/locals-cfg.stderr b/ui/locals-cfg.stderr index 200cea20fe..33a80754e3 100644 --- a/ui/locals-cfg.stderr +++ b/ui/locals-cfg.stderr @@ -1,35 +1,29 @@ error[E0425]: cannot find value `FOO` in this scope - --> $DIR/locals-cfg.rs:11:9 + --> $DIR/locals-cfg.rs:12:9 | -11 | FOO; +12 | FOO; | ^^^ not found in this scope error[E0425]: cannot find value `FOO` in this scope - --> $DIR/locals-cfg.rs:21:9 + --> $DIR/locals-cfg.rs:22:9 | -21 | FOO; +22 | FOO; | ^^^ not found in this scope error[E0425]: cannot find value `FOO` in this scope - --> $DIR/locals-cfg.rs:31:9 + --> $DIR/locals-cfg.rs:32:9 | -31 | FOO; +32 | FOO; | ^^^ not found in this scope error[E0425]: cannot find value `FOO` in this scope - --> $DIR/locals-cfg.rs:39:9 + --> $DIR/locals-cfg.rs:40:9 | -39 | FOO; +40 | FOO; | ^^^ not found in this scope error[E0425]: cannot find value `FOO` in this scope - --> $DIR/locals-cfg.rs:47:9 + --> $DIR/locals-cfg.rs:48:9 | -47 | FOO; +48 | FOO; | ^^^ not found in this scope - -error: duplicate lang item in crate `panic_halt` (which `$CRATE` depends on): `panic_impl`. - | - = note: the lang item is first defined in crate `std` (which `$CRATE` depends on) - = note: first definition in `std` loaded from /usr/share/rust/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6f77337c1826707d.rlib - = note: second definition in `panic_halt` loaded from $DIR/target/tests/target/x86_64-unknown-linux-gnu/debug/deps/libpanic_halt-ad4cf7fac73711f1.rmeta diff --git a/ui/resources-cfg.rs b/ui/resources-cfg.rs index c11d2ba45d..c802a46f3b 100644 --- a/ui/resources-cfg.rs +++ b/ui/resources-cfg.rs @@ -1,5 +1,6 @@ #![no_main] -use panic_halt as _; + +use panic_semihosting as _; #[rtic::app(device = lm3s6965)] mod app { diff --git a/ui/resources-cfg.stderr b/ui/resources-cfg.stderr index 3bbbd2d9a8..03612de030 100644 --- a/ui/resources-cfg.stderr +++ b/ui/resources-cfg.stderr @@ -1,125 +1,119 @@ -error: duplicate lang item in crate `panic_halt` (which `$CRATE` depends on): `panic_impl`. - | - = note: the lang item is first defined in crate `std` (which `$CRATE` depends on) - = note: first definition in `std` loaded from /usr/share/rust/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-6f77337c1826707d.rlib - = note: second definition in `panic_halt` loaded from $DIR/target/tests/target/x86_64-unknown-linux-gnu/debug/deps/libpanic_halt-ad4cf7fac73711f1.rmeta - error[E0609]: no field `o1` on type `__rtic_internal_initResources<'_>` - --> $DIR/resources-cfg.rs:47:21 + --> $DIR/resources-cfg.rs:48:21 | -47 | c.resources.o1; +48 | c.resources.o1; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o4` on type `__rtic_internal_initResources<'_>` - --> $DIR/resources-cfg.rs:48:21 + --> $DIR/resources-cfg.rs:49:21 | -48 | c.resources.o4; +49 | c.resources.o4; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o5` on type `__rtic_internal_initResources<'_>` - --> $DIR/resources-cfg.rs:49:21 + --> $DIR/resources-cfg.rs:50:21 | -49 | c.resources.o5; +50 | c.resources.o5; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o6` on type `__rtic_internal_initResources<'_>` - --> $DIR/resources-cfg.rs:50:21 + --> $DIR/resources-cfg.rs:51:21 | -50 | c.resources.o6; +51 | c.resources.o6; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s3` on type `__rtic_internal_initResources<'_>` - --> $DIR/resources-cfg.rs:51:21 + --> $DIR/resources-cfg.rs:52:21 | -51 | c.resources.s3; +52 | c.resources.s3; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o2` on type `__rtic_internal_idleResources<'_>` - --> $DIR/resources-cfg.rs:58:21 + --> $DIR/resources-cfg.rs:59:21 | -58 | c.resources.o2; +59 | c.resources.o2; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o4` on type `__rtic_internal_idleResources<'_>` - --> $DIR/resources-cfg.rs:59:21 + --> $DIR/resources-cfg.rs:60:21 | -59 | c.resources.o4; +60 | c.resources.o4; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s1` on type `__rtic_internal_idleResources<'_>` - --> $DIR/resources-cfg.rs:60:21 + --> $DIR/resources-cfg.rs:61:21 | -60 | c.resources.s1; +61 | c.resources.s1; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s3` on type `__rtic_internal_idleResources<'_>` - --> $DIR/resources-cfg.rs:61:21 + --> $DIR/resources-cfg.rs:62:21 | -61 | c.resources.s3; +62 | c.resources.s3; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o3` on type `__rtic_internal_uart0Resources<'_>` - --> $DIR/resources-cfg.rs:68:21 + --> $DIR/resources-cfg.rs:69:21 | -68 | c.resources.o3; +69 | c.resources.o3; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s1` on type `__rtic_internal_uart0Resources<'_>` - --> $DIR/resources-cfg.rs:69:21 + --> $DIR/resources-cfg.rs:70:21 | -69 | c.resources.s1; +70 | c.resources.s1; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s2` on type `__rtic_internal_uart0Resources<'_>` - --> $DIR/resources-cfg.rs:70:21 + --> $DIR/resources-cfg.rs:71:21 | -70 | c.resources.s2; +71 | c.resources.s2; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s3` on type `__rtic_internal_uart0Resources<'_>` - --> $DIR/resources-cfg.rs:71:21 + --> $DIR/resources-cfg.rs:72:21 | -71 | c.resources.s3; +72 | c.resources.s3; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `s2` on type `__rtic_internal_uart1Resources<'_>` - --> $DIR/resources-cfg.rs:76:21 + --> $DIR/resources-cfg.rs:77:21 | -76 | c.resources.s2; +77 | c.resources.s2; | ^^ unknown field | = note: available fields are: `__marker__` error[E0609]: no field `o5` on type `__rtic_internal_uart1Resources<'_>` - --> $DIR/resources-cfg.rs:77:21 + --> $DIR/resources-cfg.rs:78:21 | -77 | c.resources.o5; +78 | c.resources.o5; | ^^ unknown field | = note: available fields are: `__marker__`