8 "github.com/edwarnicke/exechelper"
11 func (s *VethsSuite) TestLDPreloadIperfVpp() {
12 var clnVclConf, srvVclConf Stanza
14 srvInstance := "vpp-ldp-srv"
15 clnInstance := "vpp-ldp-cln"
16 srvPath := "/tmp/" + srvInstance
17 clnPath := "/tmp/" + clnInstance
18 srvVcl := srvPath + "/vcl_srv.conf"
19 clnVcl := clnPath + "/vcl_cln.conf"
21 exechelper.Run("mkdir " + srvPath)
22 exechelper.Run("mkdir " + clnPath)
24 ldpreload := os.Getenv("HST_LDPRELOAD")
25 s.assertNotEqual("", ldpreload)
27 ldpreload = "LD_PRELOAD=" + ldpreload
29 stopServerCh := make(chan struct{}, 1)
30 srvCh := make(chan error, 1)
31 clnCh := make(chan error)
33 fmt.Println("starting VPPs")
35 s.assertNil(dockerRun(srvInstance, fmt.Sprintf("-v /tmp/%s:/tmp", srvInstance)), "failed to start docker (srv)")
36 defer func() { exechelper.Run("docker stop " + srvInstance) }()
38 s.assertNil(dockerRun(clnInstance, fmt.Sprintf("-v /tmp/%s:/tmp", clnInstance)), "failed to start docker (cln)")
39 defer func() { exechelper.Run("docker stop " + clnInstance) }()
41 _, err := hstExec("Configure2Veths srv", srvInstance)
44 _, err = hstExec("Configure2Veths cln", clnInstance)
49 Append("rx-fifo-size 4000000").
50 Append("tx-fifo-size 4000000").
51 Append("app-scope-local").
52 Append("app-scope-global").
53 Append("use-mq-eventfd").
54 Append(fmt.Sprintf("app-socket-api /tmp/%s/Configure2Veths/var/run/app_ns_sockets/2", clnInstance)).Close().
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(fmt.Sprintf("app-socket-api /tmp/%s/Configure2Veths/var/run/app_ns_sockets/1", srvInstance)).Close().
69 fmt.Printf("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 fmt.Println("attaching client to vpp")
81 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clnVcl)
82 go StartClientApp(clnEnv, clnCh)
84 // wait for client's result
89 stopServerCh <- struct{}{}