prometeu-runtime/docs/pull-requests/PR-016-[CI]-separate-network-dependent-debugger-tests.md
2026-03-24 13:40:46 +00:00

67 lines
2.9 KiB
Markdown

# PR-016 [CI]: Separate Network-Dependent Debugger Tests
## Briefing
Os testes do host debugger passam quando executados em ambiente com permissao normal de socket, mas falham em contexto sandboxado que bloqueia bind de porta TCP. Isso cria um problema de engenharia: a suite parece instavel quando, na pratica, o comportamento observado e uma restricao do ambiente, nao um bug do runtime.
Esta PR organiza esses testes para que continuem existindo, continuem sendo exigidos, mas sejam executados na pista correta.
## Problema
- testes de debugger que dependem de abrir porta TCP falham em ambientes com restricao de bind;
- o comando de workspace pode acusar falso negativo quando rodado em sandbox local;
- sem separacao de trilha, fica dificil distinguir:
- falha real do debugger;
- limitacao do ambiente de execucao;
- regressao de CI.
## Alvo
- testes de `prometeu-host-desktop-winit` que abrem listener TCP;
- fluxo de execucao de testes local e de CI;
- documentacao de como rodar a suite completa com requisitos de ambiente.
## Escopo
- Identificar os testes realmente dependentes de socket.
- Separar esses testes por estrategia clara, por exemplo:
- suite dedicada;
- `#[ignore]` com comando explicito de execucao;
- gate por feature ou por condicao de ambiente;
- job dedicado de CI fora de sandbox restritivo.
- Preservar cobertura funcional do debugger.
- Documentar a forma oficial de rodar esses testes.
## Fora de Escopo
- Reescrever o debugger para nao usar TCP.
- Redesenhar o protocolo de debug.
- Remover testes de integracao do debugger.
- Introduzir heuristicas silenciosas que "engulam" falhas reais de rede.
## Abordagem
1. Catalogar os testes que fazem bind de porta e verificar se todos sao realmente de integracao.
2. Escolher uma estrategia explicita de separacao, preferencialmente uma que mantenha os testes presentes no repo e visiveis na CI.
3. Ajustar o comando ou job de CI para executar a suite correta no ambiente correto.
4. Documentar localmente como um desenvolvedor deve rodar:
- suite padrao;
- suite completa com debugger/socket.
## Criterios de Aceite
- O fluxo padrao de testes nao produz falso negativo por restricao de socket do ambiente.
- Os testes de debugger continuam existindo e continuam sendo executados em algum caminho oficial.
- A documentacao deixa claro quando e onde a suite de socket deve rodar.
- Falhas reais do debugger continuam visiveis e nao sao mascaradas por skip silencioso sem criterio.
## Tests
- Rodar o fluxo padrao de testes no ambiente comum do projeto.
- Rodar explicitamente a suite de debugger/socket no ambiente habilitado para bind.
- Validar que o job ou comando documentado realmente cobre os testes de reconexao, porta aberta, segunda conexao e resume apos disconnect.
## Risco
Medio. O risco principal e esconder regressao real atras de condicionais ambientais mal projetadas. A PR deve tratar ambiente como requisito explicito, nunca como desculpa para reduzir cobertura.