summaryrefslogtreecommitdiffstatshomepage
path: root/tests/extmod/uasyncio_cancel_self.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/extmod/uasyncio_cancel_self.py')
-rw-r--r--tests/extmod/uasyncio_cancel_self.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/extmod/uasyncio_cancel_self.py b/tests/extmod/uasyncio_cancel_self.py
new file mode 100644
index 0000000000..660ae66389
--- /dev/null
+++ b/tests/extmod/uasyncio_cancel_self.py
@@ -0,0 +1,31 @@
+# Test a task cancelling itself (currently unsupported)
+
+try:
+ import uasyncio as asyncio
+except ImportError:
+ try:
+ import asyncio
+ except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+
+async def task():
+ print("task start")
+ global_task.cancel()
+
+
+async def main():
+ global global_task
+ global_task = asyncio.create_task(task())
+ try:
+ await global_task
+ except asyncio.CancelledError:
+ print("main cancel")
+ print("main done")
+
+
+try:
+ asyncio.run(main())
+except RuntimeError as er:
+ print(er)