From d9d991c510c6287bd3f077976c5b6e46a7e81f4f Mon Sep 17 00:00:00 2001 From: Matus Fabian Date: Tue, 20 May 2025 13:12:11 +0000 Subject: [PATCH] hs-test: NewHttpClient add param to disable http2 Type: test Change-Id: Ieed925c0902bc58d916cf3d3c4d709d330e72c89 Signed-off-by: Matus Fabian --- extras/hs-test/http_test.go | 40 ++++++++++++++++++++-------------------- extras/hs-test/infra/utils.go | 5 +++-- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/extras/hs-test/http_test.go b/extras/hs-test/http_test.go index bd686d7780a..66f6adaae8c 100644 --- a/extras/hs-test/http_test.go +++ b/extras/hs-test/http_test.go @@ -49,7 +49,7 @@ const defaultHttpTimeout = time.Second * 10 func httpDownloadBenchmark(s *HstSuite, experiment *gmeasure.Experiment, data interface{}) { url, isValid := data.(string) s.AssertEqual(true, isValid) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", url, nil) s.AssertNil(err, fmt.Sprint(err)) t := time.Now() @@ -92,7 +92,7 @@ func httpUploadBenchmark(s *HstSuite, experiment *gmeasure.Experiment, data inte s.AssertEqual(true, isValid) body := make([]byte, 10485760) _, err := rand.Read(body) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("POST", url, bytes.NewBuffer(body)) s.AssertNil(err, fmt.Sprint(err)) t := time.Now() @@ -240,7 +240,7 @@ func HttpStaticPostTest(s *NoTopoSuite) { body := make([]byte, 131072) _, err := rand.Read(body) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("POST", "http://"+serverAddress+":80/test3", bytes.NewBuffer(body)) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -676,7 +676,7 @@ func HttpStaticPromTest(s *NoTopoSuite) { s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers")) s.Log(vpp.Vppctl("prom enable")) time.Sleep(time.Second * 5) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/"+query, nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -691,7 +691,7 @@ func HttpStaticPromTest(s *NoTopoSuite) { } func promReq(s *NoTopoSuite, url string, timeout time.Duration) { - client := NewHttpClient(timeout) + client := NewHttpClient(timeout, false) req, err := http.NewRequest("GET", url, nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -952,7 +952,7 @@ func HttpStaticFileHandlerTestFunction(s *NoTopoSuite, max_age string) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server www-root " + wwwRootPath + " uri tcp://" + serverAddress + "/80 debug cache-size 2m " + maxAgeFormatted)) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/index.html", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1010,7 +1010,7 @@ func HttpStaticPathSanitizationTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server www-root " + wwwRootPath + " uri tcp://" + serverAddress + "/80 debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/../secret_folder/secret_file.txt", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1051,7 +1051,7 @@ func HttpStaticMovedTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server www-root " + wwwRootPath + " uri tcp://" + serverAddress + "/80 debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/tmp.aaa", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1071,7 +1071,7 @@ func HttpStaticNotFoundTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server www-root " + wwwRootPath + " uri tcp://" + serverAddress + "/80 debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/notfound.html", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1089,7 +1089,7 @@ func HttpCliMethodNotAllowedTest(s *NoTopoSuite) { serverAddress := s.VppAddr() vpp.Vppctl("http cli server") - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("POST", "http://"+serverAddress+":80/test", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1107,7 +1107,7 @@ func HttpCliBadRequestTest(s *NoTopoSuite) { serverAddress := s.VppAddr() vpp.Vppctl("http cli server") - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1124,7 +1124,7 @@ func HttpStaticBuildInUrlGetVersionTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server uri tls://" + serverAddress + "/80 url-handlers debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "https://"+serverAddress+":80/version.json", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1148,7 +1148,7 @@ func HttpStaticBuildInUrlGetVersionVerboseTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/version.json?verbose=true", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1172,7 +1172,7 @@ func HttpStaticBuildInUrlGetIfListTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/interface_list.json", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1192,7 +1192,7 @@ func HttpStaticBuildInUrlGetIfStatsTest(s *NoTopoSuite) { serverAddress := s.VppAddr() s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers debug")) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/interface_stats.json", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1221,7 +1221,7 @@ func HttpStaticBuildInUrlPostIfStatsTest(s *NoTopoSuite) { s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers debug")) body := []byte(s.VppIfName()) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("POST", "http://"+serverAddress+":80/interface_stats.json", bytes.NewBuffer(body)) s.AssertNil(err, fmt.Sprint(err)) @@ -1242,7 +1242,7 @@ func HttpStaticMacTimeTest(s *NoTopoSuite) { s.Log(vpp.Vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers debug")) s.Log(vpp.Vppctl("mactime enable-disable " + s.VppIfName())) - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/mactime.json", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1444,7 +1444,7 @@ func HttpMethodNotImplementedTest(s *NoTopoSuite) { serverAddress := s.VppAddr() vpp.Vppctl("http cli server") - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("OPTIONS", "http://"+serverAddress+":80/show/version", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1471,7 +1471,7 @@ func HttpUriDecodeTest(s *NoTopoSuite) { serverAddress := s.VppAddr() vpp.Vppctl("http cli server") - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/sh%6fw%20versio%6E%20verbose", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) @@ -1634,7 +1634,7 @@ func HeaderServerTest(s *NoTopoSuite) { serverAddress := s.VppAddr() vpp.Vppctl("http cli server") - client := NewHttpClient(defaultHttpTimeout) + client := NewHttpClient(defaultHttpTimeout, false) req, err := http.NewRequest("GET", "http://"+serverAddress+":80/show/version", nil) s.AssertNil(err, fmt.Sprint(err)) resp, err := client.Do(req) diff --git a/extras/hs-test/infra/utils.go b/extras/hs-test/infra/utils.go index 43aa51a88f4..8b61320db41 100644 --- a/extras/hs-test/infra/utils.go +++ b/extras/hs-test/infra/utils.go @@ -128,11 +128,12 @@ func (s *Stanza) SaveToFile(fileName string) error { return err } -// NewHttpClient creates [http.Client] with disabled proxy and redirects, it also sets timeout to 30seconds. -func NewHttpClient(timeout time.Duration) *http.Client { +// NewHttpClient creates [http.Client] with disabled proxy and redirects. +func NewHttpClient(timeout time.Duration, enableHTTP2 bool) *http.Client { transport := http.DefaultTransport transport.(*http.Transport).Proxy = nil transport.(*http.Transport).DisableKeepAlives = true + transport.(*http.Transport).ForceAttemptHTTP2 = enableHTTP2 transport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} client := &http.Client{ Transport: transport, -- 2.16.6