Skip to content

feat(smoke): v1.94 — registry-driven CLI smoke framework#449

Merged
itcmsgr merged 4 commits intomainfrom
feat/v1.94-smoke-final
Apr 16, 2026
Merged

feat(smoke): v1.94 — registry-driven CLI smoke framework#449
itcmsgr merged 4 commits intomainfrom
feat/v1.94-smoke-final

Conversation

@itcmsgr
Copy link
Copy Markdown
Owner

@itcmsgr itcmsgr commented Apr 16, 2026

Registry-driven smoke core. Lab4 PASS. Recreated from #445/#447 to clear code scanning comments.

🤖 Generated with Claude Code

itcmsgr and others added 4 commits April 16, 2026 23:14
Phase 1: minimal, contract-safe smoke command.

New package: internal/smoke/
- registry.go: Canonical test registry with SmokeTest struct
  (ID, Command, AllowedExit, Prerequisites, FatalPatterns, Assert)
- smoke.go: Runner with prerequisite checking, fatal error detection,
  PASS/FAIL/SKIP semantics, timeout enforcement
- report.go: Human + JSON formatters, exit code mapping

Phase 1 test set (6 probes):
- T1: validator JSON (truth, validator-backed)
- T2: health JSON (truth, validator-backed)
- T3: status (truth, no crash)
- D1: nftband.service active (daemon)
- C1: main.conf readable (config)
- M1: /metrics reachable (metrics)

CLI: nftban smoke [--json] [--group=truth|daemon|config|metrics|all]
Exit: 0=PASS, 1=FAIL, 2=INTERNAL ERROR. SKIP does not cause failure.

Fatal runtime detection: panic, segfault, unbound variable, syntax error,
bad array subscript, command not found — always FAIL.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@itcmsgr itcmsgr merged commit 45e9577 into main Apr 16, 2026
88 of 90 checks passed
@itcmsgr itcmsgr deleted the feat/v1.94-smoke-final branch April 16, 2026 20:44
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