Add passing test for local task with non Send/Sync arg

Ensure it is possible to pass a non send and non Sync
argument when spawning a local task. This is ok
since it will only be possible to spawn the task
on the same executor and priority level
This commit is contained in:
Albin Hedman 2025-10-19 13:41:03 +02:00
parent 8fbf8a9f0e
commit 355b478c43

View file

@ -0,0 +1,29 @@
#![no_main]
#[rtic_macros::mock_app(device = mock, dispatchers = [EXTI0])]
mod app {
use super::*;
#[shared]
struct Shared {}
#[local]
struct Local {}
#[init]
fn init(_cx: init::Context) -> (Shared, Local) {
task1::spawn().ok();
(Shared {}, Local {})
}
#[task(priority = 1)]
async fn task1(cx: task1::Context) {
cx.local_spawner.task2(Default::default()).ok();
}
#[task(priority = 1, is_local_task = true)]
async fn task2(_cx: task2::Context, _nsns: super::NotSendNotSync) {}
}
#[derive(Default)]
struct NotSendNotSync(PhantomData<*mut u8>);