From df6828113765c42277fe3192cd298b0143e0bc22 Mon Sep 17 00:00:00 2001 From: Egor Aristov Date: Mon, 17 Nov 2025 09:39:54 +0300 Subject: [PATCH] tests for go --- lib/golang/lib_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 lib/golang/lib_test.go diff --git a/lib/golang/lib_test.go b/lib/golang/lib_test.go new file mode 100644 index 0000000..2e8f877 --- /dev/null +++ b/lib/golang/lib_test.go @@ -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) + }) +}