9 func (s *VethsSuite) TestLDPreloadIperfVpp() {
10 var clnVclConf, srvVclConf Stanza
12 serverContainer := s.getContainerByName("server-vpp")
13 serverVolume := serverContainer.getVolumeByHostDir("/tmp/server")
14 srvVcl := serverVolume.containerDir + "/vcl_srv.conf"
16 clientContainer := s.getContainerByName("client-vpp")
17 clientVolume := clientContainer.getVolumeByHostDir("/tmp/client")
18 clnVcl := clientVolume.containerDir + "/vcl_cln.conf"
20 ldpreload := os.Getenv("HST_LDPRELOAD")
21 s.assertNotEqual("", ldpreload)
23 ldpreload = "LD_PRELOAD=" + ldpreload
25 stopServerCh := make(chan struct{}, 1)
26 srvCh := make(chan error, 1)
27 clnCh := make(chan error)
29 s.log("starting VPPs")
31 originalWorkDir := serverContainer.workDir
32 serverContainer.workDir = serverVolume.containerDir
33 _, err := serverContainer.execAction("Configure2Veths srv")
35 serverContainer.workDir = originalWorkDir
37 originalWorkDir = clientContainer.workDir
38 clientContainer.workDir = clientVolume.containerDir
39 _, err = clientContainer.execAction("Configure2Veths cln")
41 clientContainer.workDir = originalWorkDir
43 clientAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/2",
44 clientVolume.containerDir)
47 Append("rx-fifo-size 4000000").
48 Append("tx-fifo-size 4000000").
49 Append("app-scope-local").
50 Append("app-scope-global").
51 Append("use-mq-eventfd").
52 Append(clientAppSocketApi).Close().
56 serverAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/1",
57 serverVolume.containerDir)
60 Append("rx-fifo-size 4000000").
61 Append("tx-fifo-size 4000000").
62 Append("app-scope-local").
63 Append("app-scope-global").
64 Append("use-mq-eventfd").
65 Append(serverAppSocketApi).Close().
69 s.log("attaching server to vpp")
72 time.Sleep(5 * time.Second)
74 srvEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+srvVcl)
75 go StartServerApp(srvCh, stopServerCh, srvEnv)
80 s.log("attaching client to vpp")
81 var clnRes = make(chan string, 1)
82 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clnVcl)
83 go StartClientApp(clnEnv, clnCh, clnRes)
86 // wait for client's result
91 stopServerCh <- struct{}{}