hs-test: use specific port for http3 test
[vpp.git] / extras / hs-test / http_test.go
index 42eb0f0..9872f8d 100644 (file)
@@ -17,7 +17,7 @@ func (s *NsSuite) TestHttpTps() {
        // configure vpp in the container
        container.vppInstance.vppctl("http tps uri tcp://0.0.0.0/8080")
 
-       go startWget(finished, client_ip, port, "test_file_10M", "client")
+       go s.startWget(finished, client_ip, port, "test_file_10M", "client")
        // wait for client
        err := <-finished
        s.assertNil(err)
@@ -40,6 +40,38 @@ func (s *VethsSuite) TestHttpCli() {
        s.assertContains(o, "<html>", "<html> not found in the result!")
 }
 
+func (s *NoTopoSuite) TestNginxHttp3() {
+       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.netInterfaces[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.assertNil(err)
+       s.assertContains(o, "<http>", "<http> not found in the result!")
+}
+
+func (s *NoTopoSuite) TestHttpStaticProm() {
+       finished := make(chan error, 1)
+       query := "stats.prom"
+       vpp := s.getContainerByName("vpp").vppInstance
+       serverAddress := s.netInterfaces[tapInterfaceName].peer.ip4AddressString()
+       s.log(vpp.vppctl("http static server uri tcp://" + serverAddress + "/80 url-handlers"))
+       s.log(vpp.vppctl("prom enable"))
+       go s.startWget(finished, serverAddress, "80", query, "")
+       err := <-finished
+       s.assertNil(err)
+}
+
 func (s *NoTopoSuite) TestNginxAsServer() {
        query := "return_ok"
        finished := make(chan error, 1)
@@ -53,7 +85,7 @@ func (s *NoTopoSuite) TestNginxAsServer() {
        serverAddress := s.netInterfaces[tapInterfaceName].peer.ip4AddressString()
 
        defer func() { os.Remove(query) }()
-       go startWget(finished, serverAddress, "80", query, "")
+       go s.startWget(finished, serverAddress, "80", query, "")
        s.assertNil(<-finished)
 }
 
@@ -69,7 +101,7 @@ func parseString(s, pattern string) string {
 
 func runNginxPerf(s *NoTopoSuite, mode, ab_or_wrk string) error {
        nRequests := 1000000
-       nClients := 2000
+       nClients := 1000
 
        serverAddress := s.netInterfaces[tapInterfaceName].peer.ip4AddressString()
 
@@ -87,6 +119,8 @@ func runNginxPerf(s *NoTopoSuite, mode, ab_or_wrk string) error {
                } 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()