diff options
Diffstat (limited to 'embassy-executor/tests')
| -rw-r--r-- | embassy-executor/tests/test.rs | 31 |
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] | ||
| 332 | fn 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 | } | ||
