kittenipc/lib/golang/lib_test.go
2025-11-17 09:39:54 +03:00

41 lines
960 B
Go

package golang
import (
"os/exec"
"testing"
"time"
"github.com/stretchr/testify/assert"
)
func TestNewParent(t *testing.T) {
t.Run("socket argument in command", func(t *testing.T) {
cmd := exec.Command("/bin/sh", ipcSocketArg, "/tmp/kek")
_, err := NewParent(cmd)
assert.Error(t, err)
})
t.Run("nonexistent binary", func(t *testing.T) {
cmd := exec.Command("/nonexistent/binary")
p, err := NewParent(cmd)
assert.NoError(t, err)
assert.Error(t, p.Start())
})
t.Run("connection timeout", func(t *testing.T) {
cmd := exec.Command("../testdata/sleep15.sh")
p, err := NewParent(cmd)
assert.NoError(t, err)
assert.Error(t, p.Start())
})
t.Run("child finished before accepting connection", func(t *testing.T) {
cmd := exec.Command("../testdata/sleep3.sh")
p, err := NewParent(cmd)
assert.NoError(t, err)
start := time.Now()
assert.Error(t, p.Start())
assert.WithinDuration(t, time.Now(), start, time.Second*4)
})
}