test: add tier-11 scenarios and CI validation#51
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1e90375ed9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if errors.As(err, &exitErr) { | ||
| return strings.TrimSpace(string(output)), exitErr.ExitCode() | ||
| } | ||
| t.Fatalf("run command %v: %v output=%s", args, err, string(output)) |
There was a problem hiding this comment.
Stop invoking Fatalf-capable helper from worker goroutines
runConcurrentScenario calls runCommand inside spawned goroutines, and runCommand calls t.Fatalf on non-exit execution errors. In Go tests, Fatalf/FailNow must run on the main test goroutine; when a command cannot be started (for example, bad binary path/permissions or OS exec failure), this can trigger FailNow from a worker goroutine and produce unstable failures instead of a clean per-run error report. Return this path as an error through errCh rather than calling t.Fatalf from the helper used concurrently.
Useful? React with 👍 / 👎.
Problem
The repo lacked a deterministic scenario-fixture lane that validates higher-risk Gate and artifact behaviors in a reusable, CI-enforced way.
Changes
internal/scenariosscenario execution + fixture validation testsscenarios/gait/*scripts/run_scenarios.shandscripts/validate_scenarios.shMakefile,go.mod,go.sum, andCODEOWNERSfor scenario coverage and ownershipValidation
gait doctor --json(pass)make prepush-full(pass, includes lint/vet/gosec/govulncheck/tests/coverage/codeql)make prepushduringgit push(pass)