Skip to content

fix: parse reporters utPLSQL 3.2.x + Windows cmd.exe bypass (PRDs-35,36) - #47

Merged
thepaneb merged 1 commit into
mainfrom
release/v0.7.0
Jul 21, 2026
Merged

fix: parse reporters utPLSQL 3.2.x + Windows cmd.exe bypass (PRDs-35,36)#47
thepaneb merged 1 commit into
mainfrom
release/v0.7.0

Conversation

@thepaneb

@thepaneb thepaneb commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Descrição

Corrige duas causas de falha silenciosa na cobertura de código:

  1. PRD-36 — Parse de reporters no utPLSQL 3.2.x: o parseReportersOutput usava .trim() que removia a indentação das descrições, fazendo linhas como Generates a Cobertura... serem capturadas como falsos reporters. A regex ^([A-Za-z0-9_]+) sem .trim() ancora no início real da linha, ignorando corretamente linhas indentadas.
  2. PRD-35 — Windows cmd.exe double-wrap: no modo launcher, o Node.js adiciona "..." ao redor do comando já quotado pelo quoteArg, e o cmd.exe /S pode não reconstituir corretamente com múltiplas aspas internas. Agora usamos cmd.exe diretamente com shell: false.
  3. Flag coverageEnabled: evita que applyCoverage seja chamado quando o reporter não está disponível, prevenindo a mensagem falsa de GRANT EXECUTE ON SYS.DBMS_PROFILER.

Tipo de mudança

  • 🐛 Correção de bug
  • 🧪 Testes

Como foi testado?

  • VSCode: 1.129.1
  • SO: Linux (WSL) + Windows 11
  • Modo de invocação: launcher + java
  • Banco Oracle / UT3: Oracle 19c, utPLSQL 3.2.3.4508 no banco, CLI 3.2.0.local

Passos realizados:

  1. npm test → 138/138 unitários
  2. npm run test:integration → 18/18 (launcher + java, cobertura funcional)
  3. npm run package → .vsix gerado (457 KB)
  4. Validação manual no Windows: utplsql reporters mostrava reporter com :, extensão não reconhecia → corrigido

Checklist

  • npm run compile executa sem erros
  • npm test passa localmente
  • Testei manualmente no Extension Development Host (F5)
  • Atualizei o README.md (tabela de Configuração/Comandos), se necessário
  • Atualizei o CHANGELOG.md
  • Se alterei settings em package.json, mantive as descrições em português, no padrão do projeto
  • Se alterei a montagem de argumentos de linha de comando (launcher/java), revisei possíveis impactos de escaping/injeção

Notas adicionais

O bug era silencioso porque a extensão mostrava a mensagem enganosa sobre GRANT EXECUTE ON SYS.DBMS_PROFILER (herdada de versões antigas), quando na verdade o problema era o parse do output do utplsql reporters. O novo formato com descrições indentadas foi introduzido no CLI 3.2.x e não era exercitado pelos testes de integração (que usam CLI 3.2.0.local com formato antigo).

- parseReportersOutput: regex ^([A-Za-z0-9_]+) sem .trim() para ignorar
  descrições indentadas do formato utPLSQL 3.2.x (PRD-36)
- coverageEnabled flag previne mensagem falsa 'GRANT EXECUTE' quando
  reporter de cobertura não está disponível
- Windows launcher: usa cmd.exe diretamente com shell:false, bypassing
  o wrap duplo de quoting do Node.js (PRD-35)
- Log [debug] CLI com args sem connection string
- +9 testes unitários (quoteArg, parseReportersOutput, applyCoverage)
- CHANGELOG, .vscodeignore atualizados
- Versão 0.7.2
@thepaneb
thepaneb merged commit 4bb5be1 into main Jul 21, 2026
3 checks passed
@thepaneb
thepaneb deleted the release/v0.7.0 branch July 25, 2026 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant