| package main |
| |
| import ( |
| . "fd.io/hs-test/infra" |
| "fmt" |
| . "github.com/onsi/ginkgo/v2" |
| ) |
| |
| func init() { |
| RegisterTapTests(LinuxIperfTest) |
| } |
| |
| func LinuxIperfTest(s *TapSuite) { |
| clnCh := make(chan error) |
| stopServerCh := make(chan struct{}) |
| srvCh := make(chan error, 1) |
| clnRes := make(chan string, 1) |
| defer func() { |
| stopServerCh <- struct{}{} |
| }() |
| |
| go func() { |
| defer GinkgoRecover() |
| s.StartIperfServerApp(srvCh, stopServerCh, nil) |
| }() |
| err := <-srvCh |
| s.AssertNil(err, fmt.Sprint(err)) |
| s.Log("server running") |
| |
| ipAddress := s.GetInterfaceByName(TapInterfaceName).Ip4AddressString() |
| go func() { |
| defer GinkgoRecover() |
| s.StartIperfClientApp(ipAddress, nil, clnCh, clnRes) |
| }() |
| s.Log("client running") |
| s.Log(<-clnRes) |
| err = <-clnCh |
| s.AssertNil(err, "err: '%s', ip: '%s'", err, ipAddress) |
| s.Log("Test completed") |
| } |