7 . "fd.io/hs-test/infra"
8 . "github.com/onsi/ginkgo/v2"
12 RegisterVethTests(LDPreloadIperfVppTest)
15 func LDPreloadIperfVppTest(s *VethsSuite) {
16 var clnVclConf, srvVclConf Stanza
19 serverContainer := s.GetContainerByName("server-vpp")
20 serverVclFileName := serverContainer.GetHostWorkDir() + "/vcl_srv.conf"
22 clientContainer := s.GetContainerByName("client-vpp")
23 clientVclFileName := clientContainer.GetHostWorkDir() + "/vcl_cln.conf"
26 ldpreload = "LD_PRELOAD=../../build-root/build-vpp_debug-native/vpp/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
28 ldpreload = "LD_PRELOAD=../../build-root/build-vpp-native/vpp/lib/x86_64-linux-gnu/libvcl_ldpreload.so"
31 stopServerCh := make(chan struct{}, 1)
32 srvCh := make(chan error, 1)
33 clnCh := make(chan error)
35 s.Log("starting VPPs")
37 clientAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/default",
38 clientContainer.GetHostWorkDir())
41 Append("rx-fifo-size 4000000").
42 Append("tx-fifo-size 4000000").
43 Append("app-scope-local").
44 Append("app-scope-global").
45 Append("use-mq-eventfd").
46 Append(clientAppSocketApi).Close().
47 SaveToFile(clientVclFileName)
48 s.AssertNil(err, fmt.Sprint(err))
50 serverAppSocketApi := fmt.Sprintf("app-socket-api %s/var/run/app_ns_sockets/default",
51 serverContainer.GetHostWorkDir())
54 Append("rx-fifo-size 4000000").
55 Append("tx-fifo-size 4000000").
56 Append("app-scope-local").
57 Append("app-scope-global").
58 Append("use-mq-eventfd").
59 Append(serverAppSocketApi).Close().
60 SaveToFile(serverVclFileName)
61 s.AssertNil(err, fmt.Sprint(err))
63 s.Log("attaching server to vpp")
65 srvEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+serverVclFileName)
68 s.StartServerApp(srvCh, stopServerCh, srvEnv)
72 s.AssertNil(err, fmt.Sprint(err))
74 s.Log("attaching client to vpp")
75 var clnRes = make(chan string, 1)
76 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clientVclFileName)
77 serverVethAddress := s.GetInterfaceByName(ServerInterfaceName).Ip4AddressString()
80 s.StartClientApp(serverVethAddress, clnEnv, clnCh, clnRes)
84 // wait for client's result
86 s.AssertNil(err, fmt.Sprint(err))
89 stopServerCh <- struct{}{}