diff options
author | Matus Fabian <matfabia@cisco.com> | 2024-06-24 19:05:38 +0200 |
---|---|---|
committer | Matus Fabian <matfabia@cisco.com> | 2024-06-24 19:05:38 +0200 |
commit | ed9843826ab653717989709cb70de2f97331c459 (patch) | |
tree | 3161782254346dc7a9ee2fceb8869affc01e1709 /extras/hs-test/http_test.go | |
parent | 1fde999eec2e0f6f8997c1bf41b638f085a14b07 (diff) |
hs-test: move nginx tests into one file
Type: test
Change-Id: Ie525636c6299a8306cba45e72f8ee6c9da6d6e4f
Signed-off-by: Matus Fabian <matfabia@cisco.com>
Diffstat (limited to 'extras/hs-test/http_test.go')
-rw-r--r-- | extras/hs-test/http_test.go | 126 |
1 files changed, 1 insertions, 125 deletions
diff --git a/extras/hs-test/http_test.go b/extras/hs-test/http_test.go index 68e2e656b35..a5694bfb54b 100644 --- a/extras/hs-test/http_test.go +++ b/extras/hs-test/http_test.go @@ -6,8 +6,6 @@ import ( "github.com/onsi/gomega/gmeasure" "io" "net/http" - "os" - "strings" "time" . "fd.io/hs-test/infra" @@ -16,9 +14,7 @@ import ( func init() { RegisterVethTests(HttpCliTest, HttpCliConnectErrorTest) - RegisterNoTopoTests(NginxHttp3Test, NginxAsServerTest, - NginxPerfCpsTest, NginxPerfRpsTest, NginxPerfWrkTest, NginxPerfCpsInterruptModeTest, - NginxPerfRpsInterruptModeTest, NginxPerfWrkInterruptModeTest, HeaderServerTest, + RegisterNoTopoTests(HeaderServerTest, HttpStaticMovedTest, HttpStaticNotFoundTest, HttpCliMethodNotAllowedTest, HttpCliBadRequestTest, HttpStaticBuildInUrlGetIfStatsTest, HttpStaticBuildInUrlPostIfStatsTest, HttpInvalidRequestLineTest, HttpMethodNotImplementedTest, HttpInvalidHeadersTest, @@ -92,27 +88,6 @@ func HttpCliConnectErrorTest(s *VethsSuite) { s.AssertContains(o, "failed to connect") } -func NginxHttp3Test(s *NoTopoSuite) { - s.SkipUnlessExtendedTestsBuilt() - - query := "index.html" - nginxCont := s.GetContainerByName("nginx-http3") - s.AssertNil(nginxCont.Run()) - - vpp := s.GetContainerByName("vpp").VppInstance - vpp.WaitForApp("nginx-", 5) - serverAddress := s.GetInterfaceByName(TapInterfaceName).Peer.Ip4AddressString() - - defer func() { os.Remove(query) }() - curlCont := s.GetContainerByName("curl") - args := fmt.Sprintf("curl --noproxy '*' --local-port 55444 --http3-only -k https://%s:8443/%s", serverAddress, query) - curlCont.ExtraRunningArgs = args - o, err := curlCont.CombinedOutput() - s.Log(o) - s.AssertNil(err, fmt.Sprint(err)) - s.AssertContains(o, "<http>", "<http> not found in the result!") -} - func HttpStaticPromTest(s *NoTopoSuite) { finished := make(chan error, 1) query := "stats.prom" @@ -566,102 +541,3 @@ func HeaderServerTest(s *NoTopoSuite) { defer resp.Body.Close() s.AssertEqual("http_cli_server", resp.Header.Get("Server")) } - -func NginxAsServerTest(s *NoTopoSuite) { - query := "return_ok" - finished := make(chan error, 1) - - nginxCont := s.GetContainerByName("nginx") - s.AssertNil(nginxCont.Run()) - - vpp := s.GetContainerByName("vpp").VppInstance - vpp.WaitForApp("nginx-", 5) - - serverAddress := s.GetInterfaceByName(TapInterfaceName).Peer.Ip4AddressString() - - defer func() { os.Remove(query) }() - go func() { - defer GinkgoRecover() - s.StartWget(finished, serverAddress, "80", query, "") - }() - s.AssertNil(<-finished) -} - -func parseString(s, pattern string) string { - temp := strings.Split(s, "\n") - for _, item := range temp { - if strings.Contains(item, pattern) { - return item - } - } - return "" -} - -func runNginxPerf(s *NoTopoSuite, mode, ab_or_wrk string) error { - nRequests := 1000000 - nClients := 1000 - - serverAddress := s.GetInterfaceByName(TapInterfaceName).Peer.Ip4AddressString() - - vpp := s.GetContainerByName("vpp").VppInstance - - nginxCont := s.GetContainerByName(SingleTopoContainerNginx) - s.AssertNil(nginxCont.Run()) - vpp.WaitForApp("nginx-", 5) - - if ab_or_wrk == "ab" { - abCont := s.GetContainerByName("ab") - args := fmt.Sprintf("-n %d -c %d", nRequests, nClients) - if mode == "rps" { - args += " -k" - } else if mode != "cps" { - return fmt.Errorf("invalid mode %s; expected cps/rps", mode) - } - // don't exit on socket receive errors - args += " -r" - args += " http://" + serverAddress + ":80/64B.json" - abCont.ExtraRunningArgs = args - o, err := abCont.CombinedOutput() - rps := parseString(o, "Requests per second:") - s.Log(rps) - s.Log(err) - s.AssertNil(err, "err: '%s', output: '%s'", err, o) - } else { - wrkCont := s.GetContainerByName("wrk") - args := fmt.Sprintf("-c %d -t 2 -d 30 http://%s:80/64B.json", nClients, - serverAddress) - wrkCont.ExtraRunningArgs = args - o, err := wrkCont.CombinedOutput() - rps := parseString(o, "requests") - s.Log(rps) - s.Log(err) - s.AssertNil(err, "err: '%s', output: '%s'", err, o) - } - return nil -} - -func NginxPerfCpsInterruptModeTest(s *NoTopoSuite) { - NginxPerfCpsTest(s) -} - -// unstable with multiple workers -func NginxPerfCpsTest(s *NoTopoSuite) { - s.SkipIfMultiWorker() - s.AssertNil(runNginxPerf(s, "cps", "ab")) -} - -func NginxPerfRpsInterruptModeTest(s *NoTopoSuite) { - NginxPerfRpsTest(s) -} - -func NginxPerfRpsTest(s *NoTopoSuite) { - s.AssertNil(runNginxPerf(s, "rps", "ab")) -} - -func NginxPerfWrkInterruptModeTest(s *NoTopoSuite) { - NginxPerfWrkTest(s) -} - -func NginxPerfWrkTest(s *NoTopoSuite) { - s.AssertNil(runNginxPerf(s, "", "wrk")) -} |