summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-05-09 15:07:11 +1000
committerDamien George <damien@micropython.org>2024-05-13 11:48:41 +1000
commit3f34be69c77dfbd1533af1f04ea460d7da2d118a (patch)
treed97fc0d148f2d0b34d0f67639579c9afeb1eada7 /tests
parentc37eb93f2dd75bf49c6cc5105494c5f176c3d541 (diff)
webassembly/asyncio: Fix case where a Promise is resolved with no arg.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs21
-rw-r--r--tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs.exp5
2 files changed, 26 insertions, 0 deletions
diff --git a/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs b/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs
new file mode 100644
index 000000000..0334a14f1
--- /dev/null
+++ b/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs
@@ -0,0 +1,21 @@
+// Test an asyncio task await'ing on a Promise that's resolved without an argument.
+
+const mp = await (await import(process.argv[2])).loadMicroPython();
+
+globalThis.foo = new Promise((resolve) => {
+ console.log(1);
+ resolve(); // resolve without an argument
+ console.log(2);
+});
+
+mp.runPython(`
+import asyncio
+import js
+
+async def task():
+ print(3)
+ print(await js.foo)
+ print(4)
+
+asyncio.create_task(task())
+`);
diff --git a/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs.exp b/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs.exp
new file mode 100644
index 000000000..f3ca0f268
--- /dev/null
+++ b/tests/ports/webassembly/asyncio_await_resolve_no_arg.mjs.exp
@@ -0,0 +1,5 @@
+1
+2
+3
+None
+4