summaryrefslogtreecommitdiffstats
path: root/lang/python/python-anyio/test.sh
blob: 3c7da507a3297d563cf4ed43bcf1c607c76a7e0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/sh

[ "$1" = python3-anyio ] || exit 0

# anyio has no module-level __version__; apk already verifies the package
# version, so this test exercises runtime behaviour instead.

python3 - << 'EOF'
from anyio import create_task_group, run, sleep

# Spawn N children in a task group and check they all complete via a shared
# sink — exercises the asyncio backend and structured-concurrency wait barrier.
results = []


async def child(num: int) -> None:
    await sleep(0)
    results.append(num)


async def main() -> None:
    async with create_task_group() as tg:
        for num in range(5):
            tg.start_soon(child, num)


run(main)

assert sorted(results) == [0, 1, 2, 3, 4], f"unexpected child completions: {results}"

print("python3-anyio OK")
EOF