inits/cmd/dkl-system-init/reaper_test.go

45 lines
664 B
Go

package main
import (
"os"
"os/exec"
"sync"
"testing"
)
func TestReap(t *testing.T) {
truePath, err := exec.LookPath("true")
if err != nil {
t.Log("true binary not found, ignoring this test.")
return
}
go handleChildren()
count := 1000
wg := &sync.WaitGroup{}
wg.Add(count)
for i := 0; i < count; i++ {
i := i
go func() {
cmd := exec.Command(truePath)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
cmd.Stdin = os.Stdin
if err := cmd.Run(); err != nil {
t.Errorf("[%d] %v", i, err)
}
wg.Done()
}()
}
wg.Wait()
cmd := exec.Command("sh", "-c", "ps aux |grep Z")
cmd.Stdout = os.Stdout
cmd.Run()
t.Fail()
}