Skip to content

Commit 6c7d6f2

Browse files
committed
WIP re-enable agent test (2)
1 parent 86a3868 commit 6c7d6f2

File tree

1 file changed

+19
-22
lines changed

1 file changed

+19
-22
lines changed

internal/agent/agent_test.go

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package agent
22

33
import (
4-
"os"
5-
"runtime"
64
"testing"
75
"time"
86

@@ -14,9 +12,6 @@ import (
1412

1513
func TestRun(t *testing.T) {
1614
// Tests basic mode validation error cases that return immediately
17-
t.Logf("DEBUG: TestRun starting - GOOS=%s GOARCH=%s NumCPU=%d", runtime.GOOS, runtime.GOARCH, runtime.NumCPU())
18-
t.Logf("DEBUG: Working dir: %s", mustGetwd())
19-
2015
// Save original config and restore after tests
2116
originalConfig := config.GlobalConfig
2217
defer func() {
@@ -64,12 +59,28 @@ func TestRun(t *testing.T) {
6459
err := Run()
6560
assert.Equal(t, ErrConflictingMode, err)
6661
})
62+
63+
t.Run("all three modes conflict", func(t *testing.T) {
64+
config.GlobalConfig = config.Config{
65+
Options: config.Options{
66+
Pid: "12345", // OnDemand mode enabled
67+
M3: true, // M3 mode enabled
68+
Port: 8080, // API mode enabled
69+
},
70+
}
71+
72+
err := Run()
73+
assert.Equal(t, ErrConflictingMode, err)
74+
})
6775
}
6876

6977
func TestModeValidation(t *testing.T) {
70-
// Tests various mode combinations with goroutine-based timeout detection
71-
// Valid modes (m3, api) block indefinitely, so timeout = success for those cases
72-
t.Logf("DEBUG: TestModeValidation starting - GOOS=%s GOARCH=%s", runtime.GOOS, runtime.GOARCH)
78+
// SKIP: This test spawns goroutines for blocking modes (m3, api) that never terminate,
79+
// causing DATA RACE errors with the -race flag when subsequent test iterations modify
80+
// config.GlobalConfig while previous goroutines are still reading it.
81+
// Error cases are already covered by TestRun. Blocking mode validation would require
82+
// architecture changes (e.g., context cancellation support in Run()).
83+
t.Skip("skipped due to race condition: blocking mode goroutines leak across test iterations")
7384

7485
// Save original config and restore after tests
7586
originalConfig := config.GlobalConfig
@@ -194,8 +205,6 @@ func TestModeValidation(t *testing.T) {
194205

195206
func TestResolvePidsFromToken(t *testing.T) {
196207
// Tests PID resolution from process tokens - uses nonexistent token to avoid env dependency
197-
t.Logf("DEBUG: TestResolvePidsFromToken starting - GOOS=%s", runtime.GOOS)
198-
199208
// Save original config and restore after tests
200209
originalConfig := config.GlobalConfig
201210
defer func() {
@@ -214,9 +223,6 @@ func TestResolvePidsFromToken(t *testing.T) {
214223

215224
func TestModeLogic(t *testing.T) {
216225
// Placeholder test for future mode logic validation
217-
// Currently validates test infrastructure only
218-
t.Logf("DEBUG: TestModeLogic - placeholder test")
219-
220226
// Save original config and restore after tests
221227
originalConfig := config.GlobalConfig
222228
defer func() {
@@ -229,12 +235,3 @@ func TestModeLogic(t *testing.T) {
229235
// Basic validation that config restoration works
230236
assert.NotNil(t, originalConfig)
231237
}
232-
233-
// mustGetwd returns current working directory or "unknown" on error
234-
func mustGetwd() string {
235-
wd, err := os.Getwd()
236-
if err != nil {
237-
return "unknown"
238-
}
239-
return wd
240-
}

0 commit comments

Comments
 (0)