Repository navigation
[AAASM-6359] 🔧 (ci): Run the native core runtime tests in CI - #364
Conversation
The 250 ms budget measured 255-286 ms in 2 of 14 runs under CPU contention. 1 s still separates enqueueing from a per-event runtime wait. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JvXQ9VcS72E7DREhsgjyHV
The env-gated test file never ran in CI. The job sets the gate variable, drops the rerun plugin, and fails if any test was skipped. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JvXQ9VcS72E7DREhsgjyHV
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
The native runtime test drives runtime_interceptor, runtime_audit and assembly, which import _core, so editing only those files skipped the job that tests them. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JvXQ9VcS72E7DREhsgjyHV
|
|
Review record (independent AI review, author-account posting) — NOT a GitHub approval. Reviewed head: Verified (independent reviewer, from CI log and a local pytest 9.1.1 run):
CI on this head: Notes (none blocking): (1) no |



Description
test/integration/test_native_core_runtime.pyskips itself unlessAAASM_RUN_NATIVE_CORE_TESTS=1and no workflow set it, so the native-core runtime tests never ran in CI (AAASM-6359; the two stale tests were already fixed in #363). This wires them into the existingnative-core-buildjob, which already builds the PyO3 core with maturin.🔧 (ci): the job sets the gate variable and runs only that file.-o addopts=""drops pytest.ini's--reruns 1(a retry would hide a flaky timing assertion). A skip exits 0, so the job also fails if the junit report shows any skipped test; otherwise a removed or typo'd variable would be a silent pass. The file is added to the PR path filter.✅ (test):test_send_event_is_non_blockingflaked while validating this: 2 of 14 runs under CPU contention measured 255-286 ms against its 250 ms budget (steady about 54 ms idle). Budget is now 1 s, with the comment updated. This is a weak oracle for "does not block" (it is a wall-clock bound); a structural test with a deliberately slow runtime would be stronger and is out of scope here.CI-definition change: minimal diff, existing action pins and
permissions: contents: readuntouched, no new secrets.Type of Change
(Configuration / CI change; the template has no such box.)
Breaking Changes
Related Issues
Testing
Local, with the exact job steps against a freshly maturin-built core (venv and target dir under /private/tmp): 13 passed, junit
skipped="0"grep exit 0. Gate off: 13 skipped and the grep exits 1, so the job would fail rather than pass silently. Mutation: changing the expected decision intest_query_policy_returns_deny_when_runtime_deniesfromdenytoallowfails that test (1 failed, 12 passed); restored byte-identical. After the budget change, 10 of 10 gated runs passed. Not verified: that the new CI step is green on a GitHub runner (checked after this PR is up), and thatuv run --with pytestkeeps the maturin-installed_corein the CI venv.Checklist
🤖 Generated with Claude Code
https://claude.ai/code/session_01JvXQ9VcS72E7DREhsgjyHV