Files
beads/cmd/bd/scripttest_test.go
Steve Yegge 09e51b2184 Fix Windows CI test failures (bd-99)
- Fix PID detection: Open lock file with O_RDWR for Windows LockFileEx
- Fix script tests: Increase timeout to 2-5s for Windows process startup
- Fix uptime test: Use math.Ceil with minimum 1 second to prevent flakiness
- Fix socket cleanup: Add done channel to wait for Start() cleanup completion

All 5 failing Windows tests should now pass.
2025-10-24 10:07:05 -07:00

38 lines
803 B
Go

package main
import (
"context"
"os/exec"
"path/filepath"
"runtime"
"testing"
"time"
"rsc.io/script"
"rsc.io/script/scripttest"
)
func TestScripts(t *testing.T) {
// Build the bd binary
exeName := "bd"
if runtime.GOOS == "windows" {
exeName += ".exe"
}
exe := filepath.Join(t.TempDir(), exeName)
if err := exec.Command("go", "build", "-o", exe, ".").Run(); err != nil {
t.Fatal(err)
}
// Create minimal engine with default commands plus bd
// Use longer timeout on Windows for slower process startup and I/O
timeout := 2 * time.Second
if runtime.GOOS == "windows" {
timeout = 5 * time.Second
}
engine := script.NewEngine()
engine.Cmds["bd"] = script.Program(exe, nil, timeout)
// Run all tests
scripttest.Test(t, context.Background(), engine, nil, "testdata/*.txt")
}