Files
openclaw/scripts/docs-i18n/codex_command_windows_test.go
clawsweeper[bot] 897ca6abbb fix: Windows-specific reliability gap in the new timeout cleanup path (#74703)
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
2026-04-29 22:43:09 -07:00

50 lines
1.2 KiB
Go

//go:build windows
package main
import (
"errors"
"os"
"os/exec"
"testing"
"time"
)
func TestConfigureCodexPromptCommandWindowsCancelsProcessTree(t *testing.T) {
t.Setenv(envDocsI18nCommandWaitDelay, "25ms")
previousRunTaskkill := runWindowsTaskkill
defer func() { runWindowsTaskkill = previousRunTaskkill }()
var gotPID int
runWindowsTaskkill = func(pid int) error {
gotPID = pid
return nil
}
command := exec.Command("codex")
configureCodexPromptCommand(command)
command.Process = &os.Process{Pid: 1234}
if command.WaitDelay != 25*time.Millisecond {
t.Fatalf("expected WaitDelay override, got %s", command.WaitDelay)
}
if command.Cancel == nil {
t.Fatal("expected Cancel to be configured")
}
if err := command.Cancel(); err != nil {
t.Fatalf("Cancel returned error: %v", err)
}
if gotPID != 1234 {
t.Fatalf("expected taskkill for pid 1234, got %d", gotPID)
}
}
func TestConfigureCodexPromptCommandWindowsCancelBeforeStart(t *testing.T) {
command := exec.Command("codex")
configureCodexPromptCommand(command)
if err := command.Cancel(); !errors.Is(err, os.ErrProcessDone) {
t.Fatalf("expected os.ErrProcessDone, got %v", err)
}
}