tests for go

This commit is contained in:
Egor Aristov 2025-11-17 09:39:54 +03:00
parent 07c8367abb
commit df68281137
Signed by: egor3f
GPG Key ID: 40482A264AAEC85F

40
lib/golang/lib_test.go Normal file
View File

@ -0,0 +1,40 @@
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)
})
}