summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2022-11-10 12:34:17 +0100
committerFlorin Coras <florin.coras@gmail.com>2022-11-10 18:35:31 +0000
commitb15a0000fff121cdd9ab03c208da429e27901b38 (patch)
treee2602590c364220af33c8751843c447385970a94
parentee4172ef0a115b6d96cfb0d5cc6ef4fb211c01aa (diff)
hs-test: add http client connect test
Type: test Signed-off-by: Filip Tehlar <ftehlar@cisco.com> Change-Id: If705d311065e128b4b6df7d8d80910e4be72d3e6
-rw-r--r--MAINTAINERS7
-rwxr-xr-xextras/hs-test/actions.go13
-rwxr-xr-xextras/hs-test/http_test.go90
-rwxr-xr-xextras/hs-test/tps_test.go36
-rwxr-xr-xextras/hs-test/utils.go1
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 }
}
`