diff options
Diffstat (limited to 'extras/hs-test/infra/suite_vpp_proxy.go')
-rw-r--r-- | extras/hs-test/infra/suite_vpp_proxy.go | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/extras/hs-test/infra/suite_vpp_proxy.go b/extras/hs-test/infra/suite_vpp_proxy.go index 37d251a3a6d..252d01eac9a 100644 --- a/extras/hs-test/infra/suite_vpp_proxy.go +++ b/extras/hs-test/infra/suite_vpp_proxy.go @@ -7,8 +7,10 @@ package hst import ( "fmt" + "net" "reflect" "runtime" + "strconv" "strings" . "github.com/onsi/ginkgo/v2" @@ -70,7 +72,9 @@ func (s *VppProxySuite) SetupTest() { s.HstSuite.SetupTest() // VPP HTTP connect-proxy - vpp, err := s.Containers.VppProxy.newVppInstance(s.Containers.VppProxy.AllocatedCpus) + var memoryConfig Stanza + memoryConfig.NewStanza("memory").Append("main-heap-size 2G") + vpp, err := s.Containers.VppProxy.newVppInstance(s.Containers.VppProxy.AllocatedCpus, memoryConfig) s.AssertNotNil(vpp, fmt.Sprint(err)) s.AssertNil(vpp.Start()) @@ -176,6 +180,37 @@ func (s *VppProxySuite) CurlUploadResourceViaTunnel(uri, proxyUri, file string) s.AssertNotContains(log, "Upgrade:") } +func handleConn(conn net.Conn) { + defer conn.Close() + buf := make([]byte, 1500) + for { + n, err := conn.Read(buf) + if err != nil { + break + } + _, err = conn.Write(buf[:n]) + if err != nil { + break + } + } +} + +func (s *VppProxySuite) StartEchoServer() *net.TCPListener { + listener, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.ParseIP(s.ServerAddr()), Port: int(s.ServerPort())}) + s.AssertNil(err, fmt.Sprint(err)) + go func() { + for { + conn, err := listener.Accept() + if err != nil { + continue + } + go handleConn(conn) + } + }() + s.Log("* started tcp echo server " + s.ServerAddr() + ":" + strconv.Itoa(int(s.ServerPort()))) + return listener +} + var _ = Describe("VppProxySuite", Ordered, ContinueOnFailure, func() { var s VppProxySuite BeforeAll(func() { |