hs-test: add http client connect test 12/37612/2
authorFilip Tehlar <ftehlar@cisco.com>
Thu, 10 Nov 2022 11:34:17 +0000 (12:34 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Thu, 10 Nov 2022 18:35:31 +0000 (18:35 +0000)
Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: If705d311065e128b4b6df7d8d80910e4be72d3e6

MAINTAINERS
extras/hs-test/actions.go
extras/hs-test/http_test.go [new file with mode: 0755]
extras/hs-test/tps_test.go [deleted file]
extras/hs-test/utils.go

index 865d1f2..b18e48b 100644 (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>
index 7525085..1f35ee7 100755 (executable)
@@ -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 (executable)
index 0000000..fbbd64a
--- /dev/null
@@ -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 (executable)
index dd87da1..0000000
+++ /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)
-       }
-}
index 4674baf..3dc511e 100755 (executable)
@@ -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 }
 }
 
 `