8 "github.com/edwarnicke/exechelper"
11 func (s *Veths2Suite) TestLDPreloadIperfVpp() {
13 var clnVclConf, srvVclConf Stanza
15 srvInstance := "vpp-ldp-srv"
16 clnInstance := "vpp-ldp-cln"
17 srvPath := "/tmp/" + srvInstance
18 clnPath := "/tmp/" + clnInstance
19 srvVcl := srvPath + "/vcl_srv.conf"
20 clnVcl := clnPath + "/vcl_cln.conf"
22 exechelper.Run("mkdir " + srvPath)
23 exechelper.Run("mkdir " + clnPath)
25 ldpreload := os.Getenv("HST_LDPRELOAD")
26 s.Assert().NotEqual("", ldpreload)
28 ldpreload = "LD_PRELOAD=" + ldpreload
30 stopServerCh := make(chan struct{}, 1)
31 srvCh := make(chan error, 1)
32 clnCh := make(chan error)
34 fmt.Println("starting VPPs")
36 err := dockerRun(srvInstance, fmt.Sprintf("-v /tmp/%s:/tmp", srvInstance))
41 defer func() { exechelper.Run("docker stop " + srvInstance) }()
43 err = dockerRun(clnInstance, fmt.Sprintf("-v /tmp/%s:/tmp", clnInstance))
48 defer func() { exechelper.Run("docker stop " + clnInstance) }()
50 _, err = hstExec("2veths srv", srvInstance)
56 _, err = hstExec("2veths cln", clnInstance)
64 Append("rx-fifo-size 4000000").
65 Append("tx-fifo-size 4000000").
66 Append("app-scope-local").
67 Append("app-scope-global").
68 Append("use-mq-eventfd").
69 Append(fmt.Sprintf("app-socket-api /tmp/%s/2veths/var/run/app_ns_sockets/2", clnInstance)).Close().
78 Append("rx-fifo-size 4000000").
79 Append("tx-fifo-size 4000000").
80 Append("app-scope-local").
81 Append("app-scope-global").
82 Append("use-mq-eventfd").
83 Append(fmt.Sprintf("app-socket-api /tmp/%s/2veths/var/run/app_ns_sockets/1", srvInstance)).Close().
89 fmt.Printf("attaching server to vpp")
92 time.Sleep(5 * time.Second)
94 srvEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+srvVcl)
95 go StartServerApp(srvCh, stopServerCh, srvEnv)
99 s.FailNow("vcl server", "%v", err)
102 fmt.Println("attaching client to vpp")
103 clnEnv := append(os.Environ(), ldpreload, "VCL_CONFIG="+clnVcl)
104 go StartClientApp(clnEnv, clnCh)
106 // wait for client's result
109 s.Failf("client", "%v", err)
113 stopServerCh <- struct{}{}