8 func (s *VethsSuite) TestLDPreloadIperfVpp() {
9 var clnVclConf, srvVclConf Stanza
11 serverContainer := s.getContainerByName("server-vpp")
12 serverVclFileName := serverContainer.GetHostWorkDir() + "/vcl_srv.conf"
14 clientContainer := s.getContainerByName("client-vpp")
15 clientVclFileName := clientContainer.GetHostWorkDir() + "/vcl_cln.conf"
17 ldpreload := os.Getenv("HST_LDPRELOAD")
18 s.assertNotEqual("", ldpreload)
20 ldpreload = "LD_PRELOAD=" + ldpreload
22 stopServerCh := make(chan struct{}, 1)
23 srvCh := make(chan error, 1)
24 clnCh := make(chan error)
26 s.log("starting VPPs")
28 clientAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/2",
29 clientContainer.GetContainerWorkDir())
32 Append("rx-fifo-size 4000000").
33 Append("tx-fifo-size 4000000").
34 Append("app-scope-local").
35 Append("app-scope-global").
36 Append("use-mq-eventfd").
37 Append(clientAppSocketApi).Close().
38 SaveToFile(clientVclFileName)
41 serverAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/1",
42 serverContainer.GetContainerWorkDir())
45 Append("rx-fifo-size 4000000").
46 Append("tx-fifo-size 4000000").
47 Append("app-scope-local").
48 Append("app-scope-global").
49 Append("use-mq-eventfd").
50 Append(serverAppSocketApi).Close().
51 SaveToFile(serverVclFileName)
54 s.log("attaching server to vpp")
56 srvEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+serverVclFileName)
57 go StartServerApp(srvCh, stopServerCh, srvEnv)
62 s.log("attaching client to vpp")
63 var clnRes = make(chan string, 1)
64 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clientVclFileName)
65 serverVethAddress := s.netInterfaces[serverInterfaceName].IP4AddressString()
66 go StartClientApp(serverVethAddress, clnEnv, clnCh, clnRes)
69 // wait for client's result
74 stopServerCh <- struct{}{}