diff options
Diffstat (limited to 'extras')
-rw-r--r-- | extras/hs-test/echo_test.go | 2 | ||||
-rw-r--r-- | extras/hs-test/http_test.go | 9 | ||||
-rw-r--r-- | extras/hs-test/infra/container.go | 5 | ||||
-rw-r--r-- | extras/hs-test/infra/vppinstance.go | 6 | ||||
-rw-r--r-- | extras/hs-test/raw_session_test.go | 3 | ||||
-rw-r--r-- | extras/hs-test/vcl_test.go | 14 | ||||
-rw-r--r-- | extras/scripts/host-stack/http-speed-test/speed_test_startup_conf | 31 | ||||
-rw-r--r-- | extras/scripts/host-stack/http-speed-test/speedtest.cli | 5 |
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 |