aboutsummaryrefslogtreecommitdiffstats
path: root/extras
diff options
context:
space:
mode:
Diffstat (limited to 'extras')
-rw-r--r--extras/hs-test/echo_test.go2
-rw-r--r--extras/hs-test/http_test.go9
-rw-r--r--extras/hs-test/infra/container.go5
-rw-r--r--extras/hs-test/infra/vppinstance.go6
-rw-r--r--extras/hs-test/raw_session_test.go3
-rw-r--r--extras/hs-test/vcl_test.go14
-rw-r--r--extras/scripts/host-stack/http-speed-test/speed_test_startup_conf31
-rw-r--r--extras/scripts/host-stack/http-speed-test/speedtest.cli5
8 files changed, 60 insertions, 15 deletions
diff --git a/extras/hs-test/echo_test.go b/extras/hs-test/echo_test.go
index b21c69a1e99..8d69c007113 100644
--- a/extras/hs-test/echo_test.go
+++ b/extras/hs-test/echo_test.go
@@ -39,7 +39,7 @@ func TcpWithLossTest(s *VethsSuite) {
clientVpp.Vppctl("nsim output-feature enable-disable host-" + s.Interfaces.Server.Name())
// Do echo test from client-vpp container
- output := clientVpp.Vppctl("test echo client uri tcp://%s/20022 verbose echo-bytes mbytes 50",
+ output := clientVpp.Vppctl("test echo client uri tcp://%s/20022 verbose echo-bytes bytes 50m",
s.Interfaces.Server.Ip4AddressString())
s.Log(output)
s.AssertNotEqual(len(output), 0)
diff --git a/extras/hs-test/http_test.go b/extras/hs-test/http_test.go
index 760ca3ca936..93317bbf8d8 100644
--- a/extras/hs-test/http_test.go
+++ b/extras/hs-test/http_test.go
@@ -412,7 +412,8 @@ func httpClientGet(s *NoTopoSuite, response string, size int) {
s.AssertContains(o, response)
s.AssertContains(o, "Content-Length: "+strconv.Itoa(size))
- file_contents := vpp.Container.Exec(false, "cat /tmp/response.txt")
+ file_contents, err := vpp.Container.Exec(false, "cat /tmp/response.txt")
+ s.AssertNil(err)
s.AssertContains(file_contents, response)
}
@@ -463,7 +464,8 @@ func httpClientRepeat(s *NoTopoSuite, requestMethod string, clientArgs string) {
o := vpp.Vppctl(cmd)
s.Log(o)
- replyCount := s.Containers.NginxServer.Exec(false, "awk 'END { print NR }' "+logPath)
+ replyCount, err := s.Containers.NginxServer.Exec(false, "awk 'END { print NR }' "+logPath)
+ s.AssertNil(err)
if replyCount != "" {
replyCountInt, err = strconv.Atoi(replyCount[:len(replyCount)-1])
s.AssertNil(err)
@@ -485,7 +487,8 @@ func httpClientRepeat(s *NoTopoSuite, requestMethod string, clientArgs string) {
o = vpp.Vppctl(cmd)
s.Log(o)
- replyCount = s.Containers.NginxServer.Exec(false, "awk 'END { print NR }' "+logPath)
+ replyCount, err = s.Containers.NginxServer.Exec(false, "awk 'END { print NR }' "+logPath)
+ s.AssertNil(err)
if replyCount != "" {
replyCountInt, err = strconv.Atoi(replyCount[:len(replyCount)-1])
s.AssertNil(err)
diff --git a/extras/hs-test/infra/container.go b/extras/hs-test/infra/container.go
index 918c19e669e..efc317fa96d 100644
--- a/extras/hs-test/infra/container.go
+++ b/extras/hs-test/infra/container.go
@@ -460,7 +460,7 @@ func (c *Container) ExecServer(useEnvVars bool, command string, arguments ...any
c.Suite.AssertNil(exechelper.Run(containerExecCommand))
}
-func (c *Container) Exec(useEnvVars bool, command string, arguments ...any) string {
+func (c *Container) Exec(useEnvVars bool, command string, arguments ...any) (string, error) {
var envVars string
serverCommand := fmt.Sprintf(command, arguments...)
if useEnvVars {
@@ -472,8 +472,7 @@ func (c *Container) Exec(useEnvVars bool, command string, arguments ...any) stri
GinkgoHelper()
c.Suite.Log(containerExecCommand)
byteOutput, err := exechelper.CombinedOutput(containerExecCommand)
- c.Suite.AssertNil(err, fmt.Sprint(err))
- return string(byteOutput)
+ return string(byteOutput), err
}
func (c *Container) saveLogs() {
diff --git a/extras/hs-test/infra/vppinstance.go b/extras/hs-test/infra/vppinstance.go
index 370d2be38d1..59d17de4d20 100644
--- a/extras/hs-test/infra/vppinstance.go
+++ b/extras/hs-test/infra/vppinstance.go
@@ -243,9 +243,11 @@ func (vpp *VppInstance) Start() error {
}
func (vpp *VppInstance) Stop() {
- pid := strings.TrimSpace(vpp.Container.Exec(false, "pidof vpp"))
+ pid, err := vpp.Container.Exec(false, "pidof vpp")
+ pid = strings.TrimSpace(pid)
// Stop VPP only if it's still running
- if len(pid) > 0 {
+ if err == nil {
+ vpp.getSuite().Log("Stopping VPP")
vpp.Container.Exec(false, "bash -c \"kill -15 "+pid+"\"")
}
}
diff --git a/extras/hs-test/raw_session_test.go b/extras/hs-test/raw_session_test.go
index c104031f78f..b93b27ab56b 100644
--- a/extras/hs-test/raw_session_test.go
+++ b/extras/hs-test/raw_session_test.go
@@ -35,6 +35,7 @@ func testVppEcho(s *VethsSuite, proto string) {
" socket-name " + s.Containers.ClientApp.GetContainerWorkDir() + "/var/run/app_ns_sockets/default" +
" use-app-socket-api uri " + uri
s.Log(clientCommand)
- o := s.Containers.ClientApp.Exec(true, clientCommand)
+ o, err := s.Containers.ClientApp.Exec(true, clientCommand)
+ s.AssertNil(err)
s.Log(o)
}
diff --git a/extras/hs-test/vcl_test.go b/extras/hs-test/vcl_test.go
index 11e2be1258e..bc557a90508 100644
--- a/extras/hs-test/vcl_test.go
+++ b/extras/hs-test/vcl_test.go
@@ -50,7 +50,8 @@ func testXEchoVclClient(s *VethsSuite, proto string) {
testClientCommand := "vcl_test_client -N 100 -p " + proto + " " + s.Interfaces.Server.Ip4AddressString() + " " + port
s.Log(testClientCommand)
echoClnContainer.AddEnvVar("VCL_CONFIG", "/vcl.conf")
- o := echoClnContainer.Exec(true, testClientCommand)
+ o, err := echoClnContainer.Exec(true, testClientCommand)
+ s.AssertNil(err)
s.Log(o)
s.AssertContains(o, "CLIENT RESULTS")
}
@@ -76,7 +77,7 @@ func testXEchoVclServer(s *VethsSuite, proto string) {
serverVethAddress := s.Interfaces.Server.Ip4AddressString()
clientVpp := s.Containers.ClientVpp.VppInstance
- o := clientVpp.Vppctl("test echo client uri %s://%s/%s fifo-size 64k verbose mbytes 2", proto, serverVethAddress, port)
+ o := clientVpp.Vppctl("test echo client uri %s://%s/%s fifo-size 64k verbose bytes 2m", proto, serverVethAddress, port)
s.Log(o)
s.AssertContains(o, "Test finished at")
}
@@ -97,7 +98,8 @@ func testVclEcho(s *VethsSuite, proto string) {
testClientCommand := "vcl_test_client -p " + proto + " " + serverVethAddress + " " + port
echoClnContainer.AddEnvVar("VCL_CONFIG", "/vcl.conf")
- o := echoClnContainer.Exec(true, testClientCommand)
+ o, err := echoClnContainer.Exec(true, testClientCommand)
+ s.AssertNil(err)
s.Log(o)
}
@@ -137,7 +139,8 @@ func testRetryAttach(s *VethsSuite, proto string) {
testClientCommand := "vcl_test_client -U -p " + proto + " " + serverVethAddress + " 12346"
echoClnContainer.AddEnvVar("VCL_CONFIG", "/vcl.conf")
- o := echoClnContainer.Exec(true, testClientCommand)
+ o, err := echoClnContainer.Exec(true, testClientCommand)
+ s.AssertNil(err)
s.Log(o)
s.Log("... First test ended. Stopping VPP server now.")
@@ -152,7 +155,8 @@ func testRetryAttach(s *VethsSuite, proto string) {
time.Sleep(30 * time.Second) // Wait a moment for the re-attachment to happen
s.Log("... Running second echo client test, after disconnect and re-attachment.")
- o = echoClnContainer.Exec(true, testClientCommand)
+ o, err = echoClnContainer.Exec(true, testClientCommand)
+ s.AssertNil(err)
s.Log(o)
s.Log("Done.")
}
diff --git a/extras/scripts/host-stack/http-speed-test/speed_test_startup_conf b/extras/scripts/host-stack/http-speed-test/speed_test_startup_conf
new file mode 100644
index 00000000000..ec9230148e5
--- /dev/null
+++ b/extras/scripts/host-stack/http-speed-test/speed_test_startup_conf
@@ -0,0 +1,31 @@
+# SPDX-License-Identifier: Apache-2.0
+# Copyright (c) 2025 Cisco Systems, Inc.
+unix {
+ interactive log /tmp/vpp.log
+ full-coredump
+ exec /scratch/matfabia/vpp/extras/scripts/host-stack/http-speed-test/speedtest.cli
+ cli-listen /run/vpp/cli.sock
+ poll-sleep-usec 0
+}
+heapsize 4g
+api-trace { on }
+api-segment { global-size 2000M api-size 1G gid vpp }
+dpdk {
+ dev 0000:17:00.0 {
+ num-tx-desc 256
+ num-rx-desc 512
+ num-rx-queues 1
+ tso on
+ }
+ enable-tcp-udp-checksum
+}
+cpu {
+ skip-cores 0
+ main-core 1
+ corelist-workers 2-10
+}
+buffers { buffers-per-numa 16536 }
+session { event-queue-length 100000 use-app-socket-api }
+tcp { max-rx-fifo 128m tso }
+socksvr { socket-name /run/vpp-api.sock }
+
diff --git a/extras/scripts/host-stack/http-speed-test/speedtest.cli b/extras/scripts/host-stack/http-speed-test/speedtest.cli
new file mode 100644
index 00000000000..555aa173d6b
--- /dev/null
+++ b/extras/scripts/host-stack/http-speed-test/speedtest.cli
@@ -0,0 +1,5 @@
+comment {SPDX-License-Identifier: Apache-2.0}
+comment {Copyright (c) 2025 Cisco Systems, Inc.}
+set int ip address HundredGigabitEthernet17/0/0 6.0.1.1/24
+set int state HundredGigabitEthernet17/0/0 up
+http static server www-root /scratch/matfabia/Speed-Test max-body-size 40m max-age 0 keepalive-timeout 120 cache-size 100m fifo-size 512k