Skip to content

[issue-89] fix: precision follow-up C5/C7/C9/C3 (#89)#91

Closed
vinicq wants to merge 1 commit into
fix/issue-88-warn-on-failurefrom
fix/issue-89-precision-followup
Closed

[issue-89] fix: precision follow-up C5/C7/C9/C3 (#89)#91
vinicq wants to merge 1 commit into
fix/issue-88-warn-on-failurefrom
fix/issue-89-precision-followup

Conversation

@vinicq

@vinicq vinicq commented Jul 1, 2026

Copy link
Copy Markdown
Owner

Empilhado sobre #90 (base = fix/issue-88-warn-on-failure). Mergear #90 primeiro; a base reverte para main sozinha.

O que mudou

Três achados de auditoria, ordenados por severidade.

1. C5/C7 (P1, FN). Should Be Equal As Integers/Numbers/Strings escapavam do self-compare (C7) e literais iguais (C5): o check casava exato should be equal. As variantes tipadas (BuiltIn, idiomáticas) são igualmente tautológicas. Novo conjunto SHOULD_BE_EQUAL_KEYWORDS, com strip de prefixo de library (BuiltIn.Should Be Equal As Integers também casa).

  • As Integers ${x} ${x} -> C7; As Numbers 5 5 -> C5; As Integers ${a} ${b} e As Numbers 5 6 continuam limpos.

2. C9 (P2, FN). STARTS: / EQUALS: com prefixo vazio é catch-all (toda mensagem começa com ""), aceitando qualquer erro. Novo _CATCH_ALL_PREFIX_RE ^(STARTS|EQUALS):\s*$ no OR de catch-all.

  • STARTS: vazio -> C9; STARTS: connection continua limpo.

3. C3 (P3). Swallow (Run Keyword And Return Status) aninhado sob Run Keyword And Continue On Failure reportava C2b (LOW) em vez de C3 (HIGH). _swallow_status_unused desembrulha uma camada do wrapper soft-assert via _effective_swallow. A atribuição ${status}= fica no call externo, então a detecção de status não-usado segue correta. Warn On Failure fica de fora de propósito (já força o teste verde - nada a detectar).

  • Repro nested -> C3 HIGH; status lido depois -> continua limpo.

Testes

Regressões para os três itens, incluindo os casos de aceite que devem continuar limpos. Suíte completa: 257 verdes.

Closes #89

Três achados de auditoria fora do escopo da #88:

1. C5/C7 (P1): Should Be Equal As Integers/Numbers/Strings escapavam do
   self-compare (C7) e literais iguais (C5) porque o check casava exato
   "should be equal". As variantes tipadas são igualmente tautológicas.
   Novo conjunto SHOULD_BE_EQUAL_KEYWORDS, com strip de prefixo de library
   (BuiltIn.Should Be Equal As Integers também casa).

2. C9 (P2): STARTS: / EQUALS: com prefixo vazio é catch-all (toda mensagem
   começa com ""), aceitando qualquer erro. Novo padrão _CATCH_ALL_PREFIX_RE
   ^(STARTS|EQUALS):\s*$ no OR de catch-all. STARTS: connection continua limpo.

3. C3 (P3): swallow (Run Keyword And Return Status) aninhado sob
   Run Keyword And Continue On Failure reportava C2b (LOW) em vez de C3 (HIGH).
   _swallow_status_unused passa a desembrulhar uma camada do wrapper soft-assert
   via _effective_swallow. Warn On Failure fica de fora de propósito (já força
   o teste verde). A atribuição ${status}= fica no call externo, então a
   detecção de status não-usado segue correta.

Regressões para os três itens, com os casos de aceite que devem continuar limpos.

Closes #89
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@vinicq vinicq deleted the branch fix/issue-88-warn-on-failure July 1, 2026 17:25
@vinicq vinicq closed this Jul 1, 2026
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