Collect server subprocess coverage and report production-focused coverage gaps
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- rust
- Ambito
- ci-cd, testing-qa
Direzione di ricerca
Start with crates/pet/tests/jsonrpc_client.rs, especially the server shutdown path referenced in the issue, and review tracking items #528 and #529 before changing coverage orchestration. Verify the profile-loss cause with the existing black-box server tests and coordinate transport fixtures with #532. Done means subprocess profiles are diagnosed and included, production and changed-code reports are distinguished, regression checks remain intact, and macOS coverage or its blocker is documented.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Tracking plan: #528
Priority: P1 for coverage integrity. Evidence: exact-audit-revision LCOV artifacts, with profile-loss cause to verify.
Problem and evidence
The coverage baseline at 4e523ba reports 80.81% Linux / 78.23% Windows line coverage and 84.81% / 81.57% function coverage. Nevertheless, both artifacts record zero execution for the transport loop, reply writers, and RPC entry handlers, despite black-box server tests exercising some of those paths.
The test client kills the server on Drop, which likely prevents normal LLVM profile flushing. Verify that cause rather than equating zero recorded coverage with absence of tests.
Aggregate coverage also includes inline test code. Restricting JSONRPC orchestration LCOV to executable lines before its test module gives 415/900 covered lines (46.1%) on both measured platforms. Conda/Poetry subprocess and diagnostic paths contain substantial unrecorded coverage. There is no macOS coverage job, although macOS functional tests exist.
Scope
- Collect instrumented server-subprocess profiles via normal bounded shutdown, unique profile output names, and inclusion in the final report.
- Add production-focused and changed-code coverage reporting; retain existing whole-workspace metrics for continuity rather than silently changing their meaning.
- Add focused failure-path/branch tests for transport and handler behavior and measure macOS-specific runtime paths with a macOS coverage job.
- Keep exact-base comparisons and fail-closed behavior. Do not optimize for a headline percentage by adding trivial tests or excluding difficult production paths.
Acceptance criteria
- A known black-box request visibly increases coverage in the corresponding handler, transport loop, and response writer on supported platforms.
- A normal server shutdown flushes/collects the expected profile; missing subprocess profiles are diagnosed rather than treated as success.
- Reports distinguish production code from inline tests and expose uncovered changed production paths.
- Targeted branch/error-path reporting is introduced where supported, with documented tool/platform limits.
- macOS coverage is measured, or a concrete toolchain blocker is recorded and split into a linked follow-up before this item is closed.
- Comparator changes and any baseline/schema transition have tests; exact-base line/function regression protection is preserved.
Dependencies and prior work
Depends on #529 for clean shutdown. Coordinate transport fixtures with #532. #522 / #524 is the existing fork-quality-workflow prerequisite. This extends the completed coverage expansion in #389 and gate enforcement in #503; it does not reopen those completed tasks or assert that the current gate is absent.
- Lingua principale
- Rust
- Stelle
- 207
- Fork
- 45
- Merge medio
- 3g 12h
- PR unite (30g)
- 11
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/python-environment-tools
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
microsoft/python-environment-tools#538 · 1 commento ·
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
debt
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
enhancement
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
microsoft/python-environment-tools#533 · 1 commento ·
Tutte le issue di microsoft/python-environment-tools
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
state:needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
zed-industries/zed#64680 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
RustPython/RustPython#8802 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheLarkInn/aipm#2390 ·