diff options
author | Filip Tehlar <ftehlar@cisco.com> | 2022-11-10 12:34:17 +0100 |
---|---|---|
committer | Florin Coras <florin.coras@gmail.com> | 2022-11-10 18:35:31 +0000 |
commit | b15a0000fff121cdd9ab03c208da429e27901b38 (patch) | |
tree | e2602590c364220af33c8751843c447385970a94 | |
parent | ee4172ef0a115b6d96cfb0d5cc6ef4fb211c01aa (diff) |
hs-test: add http client connect test
Type: test
Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: If705d311065e128b4b6df7d8d80910e4be72d3e6
-rw-r--r-- | MAINTAINERS | 7 | ||||
-rwxr-xr-x | extras/hs-test/actions.go | 13 | ||||
-rwxr-xr-x | extras/hs-test/http_test.go | 90 | ||||
-rwxr-xr-x | extras/hs-test/tps_test.go | 36 | ||||
-rwxr-xr-x | extras/hs-test/utils.go | 1 |
5 files changed, 111 insertions, 36 deletions
diff --git a/MAINTAINERS b/MAINTAINERS index 865d1f24536..b18e48b40a8 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -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> diff --git a/extras/hs-test/actions.go b/extras/hs-test/actions.go index 7525085632a..1f35ee7df15 100755 --- a/extras/hs-test/actions.go +++ b/extras/hs-test/actions.go @@ -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() diff --git a/extras/hs-test/http_test.go b/extras/hs-test/http_test.go new file mode 100755 index 00000000000..fbbd64aa31e --- /dev/null +++ b/extras/hs-test/http_test.go @@ -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!") + } +} diff --git a/extras/hs-test/tps_test.go b/extras/hs-test/tps_test.go deleted file mode 100755 index dd87da1718e..00000000000 --- a/extras/hs-test/tps_test.go +++ /dev/null @@ -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) - } -} diff --git a/extras/hs-test/utils.go b/extras/hs-test/utils.go index 4674bafc6dc..3dc511ee13d 100755 --- a/extras/hs-test/utils.go +++ b/extras/hs-test/utils.go @@ -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 } } ` |