hs-test: iperf and redis server logs 49/42549/2
authorMatus Fabian <[email protected]>
Tue, 25 Mar 2025 09:51:17 +0000 (05:51 -0400)
committerFlorin Coras <[email protected]>
Tue, 25 Mar 2025 18:59:06 +0000 (18:59 +0000)
send output to a log file for iperf server and redis server

Type: test

Change-Id: I07a5222e4717eee9cac3aab5c9a1a324d843e3b5
Signed-off-by: Matus Fabian <[email protected]>
extras/hs-test/infra/suite_ldp.go
extras/hs-test/infra/suite_vpp_proxy.go
extras/hs-test/infra/utils.go
extras/hs-test/ldp_test.go
extras/hs-test/proxy_test.go

index 408fea3..53fe100 100644 (file)
@@ -97,6 +97,11 @@ func (s *LdpSuite) SetupTest() {
 }
 
 func (s *LdpSuite) TearDownTest() {
+       if CurrentSpecReport().Failed() {
+               s.CollectIperfLogs(s.Containers.ServerVpp)
+               s.CollectRedisServerLogs(s.Containers.ServerVpp)
+       }
+
        for _, container := range s.StartedContainers {
                delete(container.EnvVars, "LD_PRELOAD")
                delete(container.EnvVars, "VCL_CONFIG")
index 252d01e..137bbb6 100644 (file)
@@ -93,6 +93,7 @@ func (s *VppProxySuite) TearDownTest() {
                s.Log(vpp.Vppctl("show session verbose 2"))
                s.Log(vpp.Vppctl("show error"))
                s.CollectNginxLogs(s.Containers.NginxServerTransient)
+               s.CollectIperfLogs(s.Containers.IperfS)
        }
        s.HstSuite.TearDownTest()
 }
index bd603f8..2f4328b 100644 (file)
@@ -18,6 +18,8 @@ import (
 const networkTopologyDir string = "topo-network/"
 const containerTopologyDir string = "topo-containers/"
 const HttpCapsuleTypeDatagram = uint64(0)
+const iperfLogFileName = "iperf.log"
+const redisLogFileName = "redis-server.log"
 
 type Stanza struct {
        content string
@@ -223,6 +225,36 @@ func (s *HstSuite) CollectEnvoyLogs(envoyContainer *Container) {
        }
 }
 
+func (s *HstSuite) IperfLogFileName(serverContainer *Container) string {
+       return serverContainer.GetContainerWorkDir() + "/" + serverContainer.Name + "-" + iperfLogFileName
+}
+
+func (s *HstSuite) CollectIperfLogs(serverContainer *Container) {
+       targetDir := serverContainer.Suite.getLogDirPath()
+       source := serverContainer.GetHostWorkDir() + "/" + serverContainer.Name + "-" + iperfLogFileName
+       cmd := exec.Command("cp", "-t", targetDir, source)
+       s.Log(cmd.String())
+       err := cmd.Run()
+       if err != nil {
+               s.Log(fmt.Sprint(err))
+       }
+}
+
+func (s *HstSuite) RedisServerLogFileName(serverContainer *Container) string {
+       return serverContainer.GetContainerWorkDir() + "/" + serverContainer.Name + "-" + redisLogFileName
+}
+
+func (s *HstSuite) CollectRedisServerLogs(serverContainer *Container) {
+       targetDir := serverContainer.Suite.getLogDirPath()
+       source := serverContainer.GetHostWorkDir() + "/" + serverContainer.Name + "-" + redisLogFileName
+       cmd := exec.Command("cp", "-t", targetDir, source)
+       s.Log(cmd.String())
+       err := cmd.Run()
+       if err != nil {
+               s.Log(fmt.Sprint(err))
+       }
+}
+
 func (s *HstSuite) StartIperfServerApp(running chan error, done chan struct{}, env []string) {
        cmd := exec.Command("iperf3", "-4", "-s", "-p", s.GetPortFromPpid())
        if env != nil {
index 3120f1c..1933b0b 100644 (file)
@@ -54,7 +54,7 @@ func ldPreloadIperfVpp(s *LdpSuite, useUdp bool) {
 
        go func() {
                defer GinkgoRecover()
-               cmd := "iperf3 -4 -s -p " + s.GetPortFromPpid()
+               cmd := "iperf3 -4 -s -p " + s.GetPortFromPpid() + " --logfile " + s.IperfLogFileName(s.Containers.ServerVpp)
                s.StartServerApp(s.Containers.ServerVpp, "iperf3", cmd, srvCh, stopServerCh)
        }()
 
@@ -90,7 +90,7 @@ func RedisBenchmarkTest(s *LdpSuite) {
 
        go func() {
                defer GinkgoRecover()
-               cmd := "redis-server --daemonize yes --protected-mode no --bind " + serverVethAddress
+               cmd := "redis-server --daemonize yes --protected-mode no --bind " + serverVethAddress + " --loglevel notice --logfile " + s.RedisServerLogFileName(s.Containers.ServerVpp)
                s.StartServerApp(s.Containers.ServerVpp, "redis-server", cmd, runningSrv, doneSrv)
        }()
 
index 7a8d9d9..b6b4df5 100644 (file)
@@ -93,7 +93,7 @@ func vppProxyIperfMTTest(s *VppProxySuite, proto string) {
 
        go func() {
                defer GinkgoRecover()
-               cmd := fmt.Sprintf("iperf3 -4 -s -B %s -p %s", s.ServerAddr(), fmt.Sprint(s.ServerPort()))
+               cmd := fmt.Sprintf("iperf3 -4 -s -B %s -p %s --logfile %s", s.ServerAddr(), fmt.Sprint(s.ServerPort()), s.IperfLogFileName(s.Containers.IperfS))
                s.StartServerApp(s.Containers.IperfS, "iperf3", cmd, srvCh, stopServerCh)
        }()