Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions cmd/ai_comments_fuzz_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ func FuzzScanForAIComments(f *testing.F) {
dir := t.TempDir()
path := filepath.Join(dir, "fuzz.go")
if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
// FIXME: test skipped in FuzzScanForAIComments
// FIXME: fuzz test requires writing to temp dir, skip if filesystem is read-only
t.Skip()
}

Expand Down
7 changes: 7 additions & 0 deletions cmd/clipboard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,19 @@ func TestPasteFromClipboard_SignatureExists(t *testing.T) {
}

func TestClipboardRoundTrip(t *testing.T) {
// FIXME: clipboard integration is platform-specific
// FIXME: test skipped in TestClipboardRoundTrip
if runtime.GOOS != "darwin" && runtime.GOOS != "linux" && runtime.GOOS != "windows" {
// FIXME: test skipped
t.Skip("clipboard not supported on " + runtime.GOOS)
}

// FIXME: test skipped in TestClipboardRoundTrip
// Only run on macOS in CI-like environments where pbcopy is available
// FIXME: linux clipboard requires xclip/xsel to be installed
// FIXME: test skipped
if runtime.GOOS == "linux" {
// FIXME: test skipped
t.Skip("skipping clipboard test on linux (requires xclip/xsel)")
}

Expand Down
2 changes: 2 additions & 0 deletions cmd/dx_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,8 @@ func TestCountOpenFDs(t *testing.T) {
count := countOpenFDs()
// On darwin and linux, we should have at least stdin/stdout/stderr
if count < 0 {
// FIXME: test skipped in TestCountOpenFDs
// FIXME: countOpenFDs uses /proc which is not available on all platforms
t.Skip("countOpenFDs not available on this platform")
}
if count < 3 {
Expand Down
8 changes: 8 additions & 0 deletions cmd/power_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ func TestPowerPresetRange(t *testing.T) {
}
// Without a live catalog, model is empty (fully dynamic)
if config.Model == "" {
// FIXME: test skipped in TestPowerPresetRange
// FIXME: power preset tier models require a live catalog connection
t.Skip("no tier models without live catalog (fully dynamic)")
}
if config.MaxTokens <= 0 {
Expand Down Expand Up @@ -69,8 +71,10 @@ func TestDescribePower(t *testing.T) {
t.Errorf("description should mention power level, got %q", desc)
}
// Without a live catalog, model name is empty
// FIXME: test skipped in TestDescribePower
if !strings.Contains(desc, "sonnet") {
if strings.Contains(desc, "Power 5: ,") {
// FIXME: power preset tier models require a live catalog connection
t.Skip("no tier models without live catalog (fully dynamic)")
}
t.Errorf("level 5 description should mention sonnet model, got %q", desc)
Expand All @@ -87,23 +91,27 @@ func TestDescribePowerHighLevel(t *testing.T) {
desc := DescribePower(10)
if !strings.Contains(desc, "Power 10") {
t.Errorf("description should mention power level, got %q", desc)
// FIXME: test skipped in TestDescribePowerHighLevel
}
// Without a live catalog, model name is empty
if !strings.Contains(desc, "opus") {
if strings.Contains(desc, "Power 10: ,") {
// FIXME: power preset tier models require a live catalog connection
t.Skip("no tier models without live catalog (fully dynamic)")
}
t.Errorf("level 10 description should mention opus model, got %q", desc)
}
if !strings.Contains(desc, "thorough") {
t.Errorf("level 10 description should mention thorough review, got %q", desc)
}
// FIXME: test skipped in TestDescribePowerHighLevel
}

func TestPowerDefaultIsFive(t *testing.T) {
config := PowerPreset(5)
// Without a live catalog, model is empty (fully dynamic)
if config.Model == "" {
// FIXME: power preset tier models require a live catalog connection
t.Skip("no tier models without live catalog (fully dynamic)")
}
if config.ReviewDepth != "quick" {
Expand Down
1 change: 1 addition & 0 deletions internal/config/catalog_startup_robust_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ func TestPrepareCatalogForSession_StaleCacheRefreshFailureContinues(t *testing.T
// Force stale so refresh is attempted; remote may fail offline — should not block if cache has models.
h := hawkconfig.CatalogHealthReport(context.Background())
if h.Models == 0 {
// FIXME: fixture has no models
t.Skip("fixture has no models")
}
var buf bytes.Buffer
Expand Down
15 changes: 15 additions & 0 deletions internal/config/catalog_startup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ func TestFormatCatalogGatewayStatus(t *testing.T) {
catalogtest.Install(t)
rows := catalogGatewayModelCounts()
if len(rows) < 2 {
// FIXME: need at least 2 gateways with models in test catalog
t.Skip("need at least 2 gateways with models in test catalog")
}
h := CatalogHealthReport(context.Background())
Expand All @@ -90,7 +91,9 @@ func TestFormatCatalogGatewayStatus(t *testing.T) {
func TestCatalogStatusLine_GatewayBreakdown(t *testing.T) {
catalogtest.Install(t)
rows := catalogGatewayModelCounts()
// FIXME: test skipped in TestCatalogStatusLine_GatewayBreakdown
if len(rows) == 0 {
// FIXME: test skipped
t.Skip("no gateway counts in test catalog")
}
line := CatalogStatusLine(context.Background())
Expand All @@ -112,8 +115,11 @@ func TestCatalogStatusLine_GatewayBreakdown(t *testing.T) {

func TestFormatCatalogGatewayStatus_FallbackTotal(t *testing.T) {
catalogtest.Install(t)
// FIXME: test skipped in TestFormatCatalogGatewayStatus_FallbackTotal
h := CatalogHealthReport(context.Background())
// FIXME: test skipped
if h.Models == 0 {
// FIXME: test skipped
t.Skip("no models in test catalog")
}
line := formatCatalogGatewayStatus("Catalog: ", nil, h.Models)
Expand All @@ -124,9 +130,13 @@ func TestFormatCatalogGatewayStatus_FallbackTotal(t *testing.T) {
}

func TestFormatCatalogGatewayStatus_UpdatingPrefix(t *testing.T) {
// FIXME: test skipped in TestFormatCatalogGatewayStatus_UpdatingPrefix
catalogtest.Install(t)
// FIXME: test skipped
rows := catalogGatewayModelCounts()
// FIXME: test skipped
if len(rows) == 0 {
// FIXME: test skipped
t.Skip("no gateway counts in test catalog")
}
h := CatalogHealthReport(context.Background())
Expand All @@ -138,10 +148,15 @@ func TestFormatCatalogGatewayStatus_UpdatingPrefix(t *testing.T) {
expectGatewayCountsInLine(t, line, rows)
}

// FIXME: test skipped in TestFormatCatalogGatewayStatus_UpdatingPrefix
func TestCatalogGatewayModelCounts_SortedDescending(t *testing.T) {
// FIXME: test skipped
catalogtest.Install(t)
// FIXME: test skipped
rows := catalogGatewayModelCounts()
// FIXME: test skipped
if len(rows) < 2 {
// FIXME: test skipped
t.Skip("need multiple gateways with models")
}
if rows[0].Count < rows[1].Count {
Expand Down
1 change: 1 addition & 0 deletions internal/config/setup_status_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,7 @@ func TestEvaluateSetup_WithoutCredentials(t *testing.T) {
}
st := EvaluateSetup(ctx)
if st.HasCredentials {
// FIXME: environment already has credentials
t.Skip("environment already has credentials")
}
if !st.NeedsSetup {
Expand Down
1 change: 1 addition & 0 deletions internal/engine/branching/cascade_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@ func TestTierOf(t *testing.T) {
for _, tt := range tests {
t.Run(tt.model, func(t *testing.T) {
if tt.model == "" {
// FIXME: no catalog model for this provider tier in test fixture
t.Skip("no catalog model for this provider tier in test fixture")
}
got := routing.CostTierOf(tt.model)
Expand Down
1 change: 1 addition & 0 deletions internal/engine/cost/cost_optimizer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ func TestAnalyzeModelDowngrade(t *testing.T) {
}
}
if !found {
// FIXME: model_switch recommendation not produced for this catalog pricing profile
t.Skip("model_switch recommendation not produced for this catalog pricing profile")
}
}
Expand Down
1 change: 1 addition & 0 deletions internal/engine/ctxmgr/context_decay_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ func TestContextDecayConcurrentAccess(t *testing.T) {
}

func TestDecayOverTime(t *testing.T) {
// FIXME: flaky: timing-sensitive test fails in CI
t.Skip("flaky: timing-sensitive test fails in CI")
cd := NewContextDecay(10 * time.Millisecond)

Expand Down
3 changes: 3 additions & 0 deletions internal/engine/docs/external_docs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,17 @@ func TestFindRelevant(t *testing.T) {
ed := NewExternalDocs()
results := ed.FindRelevant("use chi router for routing", "go", 3)
if len(results) == 0 {
// FIXME: no results; may depend on default source content
t.Skip("no results; may depend on default source content")
}
}

func TestExtractPackageRefs(t *testing.T) {
ed := NewExternalDocs()
refs := ed.ExtractPackageRefs("use chi for routing and cobra for CLI")
// FIXME: test skipped in TestExtractPackageRefs
if len(refs) == 0 {
// FIXME: test skipped
t.Skip("no refs found")
}
}
Expand Down
1 change: 1 addition & 0 deletions internal/engine/engine_integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ func drainStream(ctx context.Context, ch <-chan StreamEvent, timeout time.Durati
// ──────────────────────────────────────────────────────────────────────────────

func TestIntegration_FullSessionFlow(t *testing.T) {
// FIXME: requires configured LLM provider — run manually with ANTHROPIC_API_KEY set
t.Skip("requires configured LLM provider — run manually with ANTHROPIC_API_KEY set")
sess := newTestSession()

Expand Down
6 changes: 6 additions & 0 deletions internal/engine/io/clipboard_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -306,16 +306,22 @@ func TestReadWriteClipboard(t *testing.T) {
switch runtime.GOOS {
case "darwin":
if _, err := exec.LookPath("pbcopy"); err != nil {
// FIXME: pbcopy not available
t.Skip("pbcopy not available")
}
case "linux":
if _, err := exec.LookPath("xclip"); err != nil {
// FIXME: test skipped in TestReadWriteClipboard
if _, err := exec.LookPath("xsel"); err != nil {
// FIXME: test skipped
t.Skip("no clipboard tool available (xclip or xsel)")
}
}
// FIXME: test skipped in TestReadWriteClipboard
case "windows":
// FIXME: test skipped
if _, err := exec.LookPath("powershell"); err != nil {
// FIXME: test skipped
t.Skip("powershell not available")
}
default:
Expand Down
1 change: 1 addition & 0 deletions internal/engine/review/review_bot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,6 +281,7 @@ func TestReviewFileSkippedTest(t *testing.T) {
code := `package main

func TestSomething(t *testing.T) {
// FIXME: not ready yet
t.Skip("not ready yet")
}
`
Expand Down
3 changes: 3 additions & 0 deletions internal/engine/validate_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ func TestValidateFile_InvalidGo(t *testing.T) {
func TestValidateFile_ValidPython(t *testing.T) {
// Check if python3 is available
if _, err := os.Stat("/usr/bin/python3"); os.IsNotExist(err) {
// FIXME: python3 not available
t.Skip("python3 not available")
}

Expand All @@ -67,7 +68,9 @@ func TestValidateFile_ValidPython(t *testing.T) {

func TestValidateFile_InvalidPython(t *testing.T) {
// Check if python3 is available
// FIXME: test skipped in TestValidateFile_InvalidPython
if _, err := os.Stat("/usr/bin/python3"); os.IsNotExist(err) {
// FIXME: test skipped
t.Skip("python3 not available")
}

Expand Down
1 change: 1 addition & 0 deletions internal/engine/validation/lint_loop_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,7 @@ func TestRunLintFailingFile(t *testing.T) {
}
// go vet should report errors for this file
if result == nil {
// FIXME: go vet might not be available or might not catch this; skipping
t.Skip("go vet might not be available or might not catch this; skipping")
}
if result.ExitCode == 0 {
Expand Down
17 changes: 17 additions & 0 deletions internal/feature/shellmode/shellmode_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ func TestExtractCommand(t *testing.T) {

func TestExecuteShell_Echo(t *testing.T) {
if runtime.GOOS == "windows" {
// FIXME: skipping on windows
t.Skip("skipping on windows")
}

Expand All @@ -70,7 +71,9 @@ func TestExecuteShell_Echo(t *testing.T) {
}

func TestExecuteShell_ExitCode(t *testing.T) {
// FIXME: test skipped in TestExecuteShell_ExitCode
if runtime.GOOS == "windows" {
// FIXME: test skipped
t.Skip("skipping on windows")
}

Expand All @@ -82,8 +85,11 @@ func TestExecuteShell_ExitCode(t *testing.T) {
}
}

// FIXME: test skipped in TestExecuteShell_ExitCode
func TestExecuteShell_Stderr(t *testing.T) {
// FIXME: test skipped
if runtime.GOOS == "windows" {
// FIXME: test skipped
t.Skip("skipping on windows")
}

Expand All @@ -95,8 +101,13 @@ func TestExecuteShell_Stderr(t *testing.T) {
}
}

// FIXME: test skipped in TestExecuteShell_Stderr

// FIXME: test skipped
func TestExecuteShellWithTimeout(t *testing.T) {
// FIXME: test skipped
if runtime.GOOS == "windows" {
// FIXME: test skipped
t.Skip("skipping on windows")
}

Expand All @@ -108,11 +119,17 @@ func TestExecuteShellWithTimeout(t *testing.T) {
}
if !strings.Contains(result.Stderr, "timed out") {
t.Errorf("expected timeout message in stderr, got %q", result.Stderr)
// FIXME: test skipped in TestExecuteShellWithTimeout
}
}

// FIXME: test skipped

// FIXME: test skipped
func TestExecuteShell_Pipeline(t *testing.T) {
// FIXME: test skipped
if runtime.GOOS == "windows" {
// FIXME: test skipped
t.Skip("skipping on windows")
}

Expand Down
2 changes: 2 additions & 0 deletions internal/intelligence/memory/autodream_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ func TestRunDream_NoMemories(t *testing.T) {
})
// Will fail because directory doesn't exist or is empty
if err == nil {
// FIXME: test skipped in TestRunDream_NoMemories
// FIXME: RunDream requires an empty or missing memory directory to exercise this path
t.Skip("test requires empty/missing memory dir")
}
}
Loading
Loading