aboutsummaryrefslogtreecommitdiff
path: root/embassy-executor/tests/test.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-executor/tests/test.rs')
-rw-r--r--embassy-executor/tests/test.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/embassy-executor/tests/test.rs b/embassy-executor/tests/test.rs
index b84d3785a..530314ac3 100644
--- a/embassy-executor/tests/test.rs
+++ b/embassy-executor/tests/test.rs
@@ -326,3 +326,34 @@ fn recursive_task() {
326 spawner.spawn(task1()); 326 spawner.spawn(task1());
327 } 327 }
328} 328}
329
330#[cfg(feature = "metadata-name")]
331#[test]
332fn task_metadata() {
333 #[task]
334 async fn task1(expected_name: Option<&'static str>) {
335 use embassy_executor::Metadata;
336 assert_eq!(Metadata::for_current_task().await.name(), expected_name);
337 }
338
339 // check no task name
340 let (executor, _) = setup();
341 executor.spawner().spawn(task1(None)).unwrap();
342 unsafe { executor.poll() };
343
344 // check setting task name
345 let token = task1(Some("foo"));
346 token.metadata().set_name("foo");
347 executor.spawner().spawn(token).unwrap();
348 unsafe { executor.poll() };
349
350 let token = task1(Some("bar"));
351 token.metadata().set_name("bar");
352 executor.spawner().spawn(token).unwrap();
353 unsafe { executor.poll() };
354
355 // check name is cleared if the task pool slot is recycled.
356 let (executor, _) = setup();
357 executor.spawner().spawn(task1(None)).unwrap();
358 unsafe { executor.poll() };
359}