github.com/onsi/ginkgo@v1.16.6-0.20211118180735-4e1925ba4c95/internal/test_helpers/set_up_server.go (about) 1 package test_helpers 2 3 import ( 4 . "github.com/onsi/ginkgo" 5 "github.com/onsi/ginkgo/internal/parallel_support" 6 "github.com/onsi/ginkgo/reporters" 7 . "github.com/onsi/gomega" 8 ) 9 10 func SetUpServerAndClient(numNodes int) (parallel_support.Server, parallel_support.Client, map[int]chan interface{}) { 11 server, err := parallel_support.NewServer(numNodes, reporters.NoopReporter{}) 12 Ω(err).ShouldNot(HaveOccurred()) 13 server.Start() 14 client := parallel_support.NewClient(server.Address()) 15 Eventually(client.Connect).Should(BeTrue()) 16 17 exitChannels := map[int]chan interface{}{} 18 for node := 1; node <= numNodes; node++ { 19 c := make(chan interface{}) 20 exitChannels[node] = c 21 server.RegisterAlive(node, func() bool { 22 select { 23 case <-c: 24 return false 25 default: 26 return true 27 } 28 }) 29 } 30 31 DeferCleanup(server.Close) 32 DeferCleanup(client.Close) 33 34 return server, client, exitChannels 35 }