//go:build windows && integration package engine import ( "context" "testing" "time" "github.com/stretchr/testify/require" ) // TestEngine_StartStop_Smoke is an integration test that requires: // - admin // - reachable upstream SOCKS5 proxy // - WinDivert v2.2.2 driver available (or auto-installed) // // Build tag: integration. Run with: // // go test -tags integration ./internal/engine/... -run TestEngine_StartStop_Smoke // // On a clean dev box this is the canary that proves the full pipeline // is wired correctly. func TestEngine_StartStop_Smoke(t *testing.T) { cfg := Config{ ProxyAddr: "95.165.72.59:12334", Targets: []string{"explorer.exe"}, // safe target — won't actually proxy anything important } e, err := New(cfg) require.NoError(t, err) ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() require.NoError(t, e.Start(ctx)) // Should reach Active within a few seconds deadline := time.Now().Add(5 * time.Second) for time.Now().Before(deadline) && e.Status() != StatusActive { time.Sleep(50 * time.Millisecond) } require.Equal(t, StatusActive, e.Status()) require.NoError(t, e.Stop()) require.Equal(t, StatusIdle, e.Status()) }