hs-test: add http client connect test

Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: If705d311065e128b4b6df7d8d80910e4be72d3e6
This commit is contained in:
Filip Tehlar
2022-11-10 12:34:17 +01:00
committed by Florin Coras
parent ee4172ef0a
commit b15a0000ff
5 changed files with 111 additions and 36 deletions

View File

@ -823,6 +823,13 @@ M: Fan Zhang <roy.fan.zhang@intel.com>
M: Gabriel Oginski <gabrielx.oginski@intel.com>
F: extras/strongswan/vpp_sswan
Host stack test framework
I: hs-test
M: Florin Coras <fcoras@cisco.com>
M: Filip Tehlar <ftehlar@cisco.com>
M: Maros Ondrejicka <maros.ondrejicka@pantheon.tech>
F: extras/hs-test
THE REST
I: misc
M: vpp-dev Mailing List <vpp-dev@fd.io>

View File

@ -31,6 +31,8 @@ func RegisterActions() {
reg("2veths", Configure2Veths)
reg("vcl-test-server", RunVclEchoServer)
reg("vcl-test-client", RunVclEchoClient)
reg("http-cli-srv", RunHttpCliSrv)
reg("http-cli-cln", RunHttpCliCln)
}
func configureProxyTcp(ifName0, ipAddr0, ifName1, ipAddr1 string) ConfFn {
@ -51,6 +53,17 @@ func configureProxyTcp(ifName0, ipAddr0, ifName1, ipAddr1 string) ConfFn {
}
}
func RunHttpCliSrv(args []string) *ActionResult {
cmd := fmt.Sprintf("http cli server")
return ApiCliInband("/tmp/2veths", cmd)
}
func RunHttpCliCln(args []string) *ActionResult {
cmd := fmt.Sprintf("http cli client uri http://10.10.10.1/80 query %s", getArgs())
fmt.Println(cmd)
return ApiCliInband("/tmp/2veths", cmd)
}
func ConfigureVppProxy(args []string) *ActionResult {
ctx, cancel := newVppContext()
defer cancel()

90
extras/hs-test/http_test.go Executable file
View File

@ -0,0 +1,90 @@
package main
import (
"strings"
"github.com/edwarnicke/exechelper"
)
func (s *NsSuite) TestHttpTps() {
t := s.T()
finished := make(chan error, 1)
server_ip := "10.0.0.2"
port := "8080"
dockerInstance := "http-tps"
t.Log("starting vpp..")
err := dockerRun(dockerInstance, "")
if err != nil {
t.Errorf("%v", err)
return
}
defer func() { exechelper.Run("docker stop " + dockerInstance) }()
// start & configure vpp in the container
_, err = hstExec(dockerInstance, dockerInstance)
if err != nil {
t.Errorf("%v", err)
return
}
go startWget(finished, server_ip, port, "client")
// wait for client
err = <-finished
if err != nil {
t.Errorf("%v", err)
}
}
func (s *Veths2Suite) TestHttpCli() {
t := s.T()
srvInstance := "http-cli-srv"
clnInstance := "http-cli-cln"
err := dockerRun(srvInstance, "")
if err != nil {
t.Errorf("%v", err)
return
}
defer func() { exechelper.Run("docker stop " + srvInstance) }()
err = dockerRun(clnInstance, "")
if err != nil {
t.Errorf("%v", err)
return
}
defer func() { exechelper.Run("docker stop " + clnInstance) }()
_, err = hstExec("2veths srv", srvInstance)
if err != nil {
t.Errorf("%v", err)
return
}
_, err = hstExec("2veths cln", clnInstance)
if err != nil {
t.Errorf("%v", err)
return
}
t.Log("configured IPs...")
_, err = hstExec("http-cli-srv", srvInstance)
if err != nil {
t.Errorf("%v", err)
return
}
t.Log("configured http server")
o, err := hstExec("http-cli-cln /show/version", clnInstance)
if err != nil {
t.Errorf("%v", err)
return
}
if strings.Index(o, "<html>") < 0 {
t.Error("<html> not found in the result!")
}
}

View File

@ -1,36 +0,0 @@
package main
import (
"github.com/edwarnicke/exechelper"
)
func (s *NsSuite) TestHttpTps() {
t := s.T()
finished := make(chan error, 1)
server_ip := "10.0.0.2"
port := "8080"
dockerInstance := "http-tps"
t.Log("starting vpp..")
err := dockerRun(dockerInstance, "")
if err != nil {
t.Errorf("%v", err)
return
}
defer func() { exechelper.Run("docker stop " + dockerInstance) }()
// start & configure vpp in the container
_, err = hstExec(dockerInstance, dockerInstance)
if err != nil {
t.Errorf("%v", err)
return
}
go startWget(finished, server_ip, port, "client")
// wait for client
err = <-finished
if err != nil {
t.Errorf("%v", err)
}
}

View File

@ -46,6 +46,7 @@ plugins {
plugin dpdk_plugin.so { disable }
plugin crypto_aesni_plugin.so { enable }
plugin quic_plugin.so { enable }
plugin crypto_ipsecmb_plugin.so { disable }
}
`