7 . "github.com/onsi/ginkgo/v2"
11 registerVethTests(LDPreloadIperfVppTest)
14 func LDPreloadIperfVppTest(s *VethsSuite) {
15 var clnVclConf, srvVclConf Stanza
17 serverContainer := s.getContainerByName("server-vpp")
18 serverVclFileName := serverContainer.getHostWorkDir() + "/vcl_srv.conf"
20 clientContainer := s.getContainerByName("client-vpp")
21 clientVclFileName := clientContainer.getHostWorkDir() + "/vcl_cln.conf"
23 ldpreload := "LD_PRELOAD=../../build-root/build-vpp-native/vpp/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
25 stopServerCh := make(chan struct{}, 1)
26 srvCh := make(chan error, 1)
27 clnCh := make(chan error)
29 s.log("starting VPPs")
31 clientAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/default",
32 clientContainer.getHostWorkDir())
35 append("rx-fifo-size 4000000").
36 append("tx-fifo-size 4000000").
37 append("app-scope-local").
38 append("app-scope-global").
39 append("use-mq-eventfd").
40 append(clientAppSocketApi).close().
41 saveToFile(clientVclFileName)
42 s.assertNil(err, fmt.Sprint(err))
44 serverAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/default",
45 serverContainer.getHostWorkDir())
48 append("rx-fifo-size 4000000").
49 append("tx-fifo-size 4000000").
50 append("app-scope-local").
51 append("app-scope-global").
52 append("use-mq-eventfd").
53 append(serverAppSocketApi).close().
54 saveToFile(serverVclFileName)
55 s.assertNil(err, fmt.Sprint(err))
57 s.log("attaching server to vpp")
59 srvEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+serverVclFileName)
62 s.startServerApp(srvCh, stopServerCh, srvEnv)
66 s.assertNil(err, fmt.Sprint(err))
68 s.log("attaching client to vpp")
69 var clnRes = make(chan string, 1)
70 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clientVclFileName)
71 serverVethAddress := s.getInterfaceByName(serverInterfaceName).ip4AddressString()
74 s.startClientApp(serverVethAddress, clnEnv, clnCh, clnRes)
78 // wait for client's result
80 s.assertNil(err, fmt.Sprint(err))
83 stopServerCh <- struct{}{}