Files
wehub-resource-sync 26f897c1ec
release / release-please (push) Failing after 1m49s
docs / build (push) Failing after 6m34s
release / build-and-upload (arm64, linux) (push) Has been cancelled
release / build-and-upload (arm64, windows) (push) Has been cancelled
release / build-darwin (amd64, darwin) (push) Has been cancelled
release / checksums (push) Has been cancelled
release / finalize (push) Has been cancelled
release / build-darwin (arm64, darwin) (push) Has been cancelled
release / build-and-upload (amd64, linux) (push) Has been cancelled
release / build-and-upload (amd64, windows) (push) Has been cancelled
docs / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:34:16 +08:00

47 lines
926 B
Go

package ipc_test
import (
"os"
"path/filepath"
"testing"
"time"
"github.com/kunchenguid/no-mistakes/internal/ipc"
)
// socketPath returns a short socket path to stay within macOS 104-byte limit.
func socketPath(t *testing.T) string {
t.Helper()
dir, err := os.MkdirTemp("", "ipc")
if err != nil {
t.Fatal(err)
}
t.Cleanup(func() { os.RemoveAll(dir) })
return filepath.Join(dir, "s.sock")
}
func startServer(t *testing.T, sock string) *ipc.Server {
t.Helper()
srv := ipc.NewServer()
errCh := make(chan error, 1)
go func() { errCh <- srv.Serve(sock) }()
// wait for server to be ready
deadline := time.Now().Add(2 * time.Second)
for time.Now().Before(deadline) {
c, err := ipc.Dial(sock)
if err == nil {
c.Close()
break
}
time.Sleep(10 * time.Millisecond)
}
t.Cleanup(func() {
srv.Close()
if err := <-errCh; err != nil {
// server returns nil on clean close
}
})
return srv
}