-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathjustfile
More file actions
93 lines (72 loc) · 4.03 KB
/
Copy pathjustfile
File metadata and controls
93 lines (72 loc) · 4.03 KB
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
set shell := ["bash", "-euo", "pipefail", "-c"]
set windows-shell := ["powershell.exe", "-NoLogo", "-NoProfile", "-Command"]
benchmark-backend := if os() == "windows" { "winloop" } else { "uvloop" }
python := if os() == "windows" { "python" } else { "python3" }
tls-test-certs outdir="tests/fixtures/tls":
uv run --no-project python scripts/generate_test_tls_certs.py {{outdir}}
fmt:
uv run ruff format .
cargo fmt --all
uvx tombi format .
clippy:
uv run cargo clippy --all-targets --all-features -- -D warnings
test-rust:
uv run --no-project python scripts/run_rust_tests.py
# Fast merge-gating proofs; `merge_` harnesses must fit the PR runtime budget.
kani-core:
cargo kani --harness merge_ -j 2 --output-format terse
# Every proof harness, including longer bounded state sequences.
kani:
cargo kani -j 2 --output-format terse
kani-list:
cargo kani list
# Manual audit for over-constrained proof harnesses across the complete suite.
kani-coverage:
cargo kani --coverage -Z source-coverage --output-format terse
# Faster source-coverage audit for merge-gating proofs.
kani-coverage-core:
cargo kani --harness merge_ --coverage -Z source-coverage --output-format terse
test: tls-test-certs
uv run python -u scripts/run_all_tests.py
test-python:
uv run python -u scripts/run_python_tests.py
test-fast: tls-test-certs
uv run python -u scripts/run_python_tests.py -m "not tooling and not stress and not slow_network"
test-stress: tls-test-certs
uv run python -u scripts/run_python_tests.py --stress-iterations -m stress
test-tooling:
uv run python -m pytest -m tooling tests/tooling
test-frameworks: test-databases
uv run --with uvicorn python tests/integration/packages/uvicorn_test.py
uv run --with daphne python tests/integration/packages/daphne_test.py
uv run --with hypercorn python tests/integration/packages/hypercorn_test.py
uv run --with mangum python tests/integration/packages/mangum_test.py
uv run --with granian --with litestar python tests/integration/packages/litestar_granian_test.py
uv run --with fastapi --with uvicorn python tests/integration/packages/fastapi_test.py
uv run --with starlette --with uvicorn python tests/integration/packages/starlette_test.py
uv run --with aiohttp python tests/integration/packages/aiohttp_test.py
uv run --with sanic python tests/integration/packages/sanic_test.py
uv run --with litestar --with uvicorn python tests/integration/packages/litestar_test.py
uv run --with django --with uvicorn python tests/integration/packages/django_asgi_test.py
uv run --with falcon --with uvicorn python tests/integration/packages/falcon_test.py
uv run --with quart --with hypercorn python tests/integration/packages/quart_test.py
uv run --with 'faststream[nats]' python tests/integration/packages/faststream_test.py
uv run --with anyio python tests/integration/packages/anyio_test.py
test-databases:
uv run --with django python tests/integration/packages/django_orm_test.py
uv run --with edgy python tests/integration/packages/edgy_test.py
uv run --with ormar python tests/integration/packages/ormar_test.py
uv run --with piccolo python tests/integration/packages/piccolo_test.py
uv run --with 'sqlalchemy[asyncio]' --with aiosqlite python tests/integration/packages/sqlalchemy_test.py
uv run --with sqlmodel --with aiosqlite python tests/integration/packages/sqlmodel_test.py
uv run --with tortoise-orm python tests/integration/packages/tortoise_orm_test.py
# Beanie needs a MongoDB server. Override RSLOOP_MONGODB_URL when it isn't local.
test-beanie:
uv run --with beanie python tests/integration/packages/beanie_test.py
# Just the AnyIO checks, which is what CI runs as its own job.
test-anyio:
uv run --with anyio python tests/integration/packages/anyio_test.py
bench-real-world:
uv run --with {{benchmark-backend}} --with 'zuvloop; python_version >= "3.14"' python benches/workload_matrix.py
bench-granian:
uv run --with granian --with {{benchmark-backend}} python benches/compare_granian.py