hs-test: add vcl echo tests

Type: test

Signed-off-by: Filip Tehlar <ftehlar@cisco.com>
Change-Id: I3e543cb292c7ed0f9d240f8f2473a1db07aff0fd
This commit is contained in:
Filip Tehlar
2023-05-22 15:48:51 +02:00
committed by Florin Coras
parent 5e42eae58b
commit 71fc194703
3 changed files with 63 additions and 32 deletions

View File

@ -0,0 +1,37 @@
package main
func (s *VethsSuite) TestVppEchoQuic() {
s.skip("quic test skipping..")
s.testVppEcho("quic")
}
func (s *VethsSuite) TestVppEchoUdp() {
s.skip("udp echo currently broken in vpp, skipping..")
s.testVppEcho("udp")
}
func (s *VethsSuite) TestVppEchoTcp() {
s.testVppEcho("tcp")
}
func (s *VethsSuite) testVppEcho(proto string) {
serverVethAddress := s.netInterfaces["vppsrv"].ip4AddressString()
uri := proto + "://" + serverVethAddress + "/12344"
echoSrvContainer := s.getContainerByName("server-app")
serverCommand := "vpp_echo server TX=RX" +
" socket-name " + echoSrvContainer.getContainerWorkDir() + "/var/run/app_ns_sockets/1" +
" use-app-socket-api" +
" uri " + uri
s.log(serverCommand)
echoSrvContainer.execServer(serverCommand)
echoClnContainer := s.getContainerByName("client-app")
clientCommand := "vpp_echo client" +
" socket-name " + echoClnContainer.getContainerWorkDir() + "/var/run/app_ns_sockets/2" +
" use-app-socket-api uri " + uri
s.log(clientCommand)
o := echoClnContainer.exec(clientCommand)
s.log(o)
}

View File

@ -16,10 +16,10 @@ containers:
- name: "client-vpp"
volumes:
- <<: *client-vol
- name: "server-application"
- name: "server-app"
volumes:
- <<: *server-vol
- name: "client-application"
- name: "client-app"
volumes:
- <<: *client-vol

View File

@ -5,41 +5,35 @@ import (
"time"
)
func (s *VethsSuite) TestVclEchoQuic() {
s.skip("quic test skipping..")
s.testVclEcho("quic")
}
func (s *VethsSuite) testVclEcho(proto string) {
port := "12345"
srvVppCont := s.getContainerByName("server-vpp")
srvAppCont := s.getContainerByName("server-app")
func (s *VethsSuite) TestVclEchoUdp() {
s.skip("udp echo currently broken in vpp, skipping..")
s.testVclEcho("udp")
serverVclConfContent := fmt.Sprintf(vclTemplate, srvVppCont.getContainerWorkDir(), "1")
srvAppCont.createFile("/vcl.conf", serverVclConfContent)
srvAppCont.addEnvVar("VCL_CONFIG", "/vcl.conf")
srvAppCont.execServer("vcl_test_server " + port)
serverVeth := s.netInterfaces[serverInterfaceName]
serverVethAddress := serverVeth.ip4AddressString()
echoClnContainer := s.getTransientContainerByName("client-app")
clientVclConfContent := fmt.Sprintf(vclTemplate, echoClnContainer.getContainerWorkDir(), "2")
echoClnContainer.createFile("/vcl.conf", clientVclConfContent)
testClientCommand := "vcl_test_client -E -p " + proto + " " + serverVethAddress + " " + port
echoClnContainer.addEnvVar("VCL_CONFIG", "/vcl.conf")
o := echoClnContainer.exec(testClientCommand)
s.log(o)
}
func (s *VethsSuite) TestVclEchoTcp() {
s.testVclEcho("tcp")
}
func (s *VethsSuite) testVclEcho(proto string) {
serverVethAddress := s.netInterfaces["vppsrv"].ip4AddressString()
uri := proto + "://" + serverVethAddress + "/12344"
echoSrvContainer := s.getContainerByName("server-application")
serverCommand := "vpp_echo server TX=RX" +
" socket-name " + echoSrvContainer.getContainerWorkDir() + "/var/run/app_ns_sockets/1" +
" use-app-socket-api" +
" uri " + uri
s.log(serverCommand)
echoSrvContainer.execServer(serverCommand)
echoClnContainer := s.getContainerByName("client-application")
clientCommand := "vpp_echo client" +
" socket-name " + echoClnContainer.getContainerWorkDir() + "/var/run/app_ns_sockets/2" +
" use-app-socket-api uri " + uri
s.log(clientCommand)
o := echoClnContainer.exec(clientCommand)
s.log(o)
func (s *VethsSuite) TestVclEchoUdp() {
s.testVclEcho("udp")
}
func (s *VethsSuite) TestVclRetryAttach() {
@ -50,7 +44,7 @@ func (s *VethsSuite) TestVclRetryAttach() {
func (s *VethsSuite) testRetryAttach(proto string) {
srvVppContainer := s.getTransientContainerByName("server-vpp")
echoSrvContainer := s.getContainerByName("server-application")
echoSrvContainer := s.getContainerByName("server-app")
serverVclConfContent := fmt.Sprintf(vclTemplate, echoSrvContainer.getContainerWorkDir(), "1")
echoSrvContainer.createFile("/vcl.conf", serverVclConfContent)
@ -64,7 +58,7 @@ func (s *VethsSuite) testRetryAttach(proto string) {
serverVeth := s.netInterfaces[serverInterfaceName]
serverVethAddress := serverVeth.ip4AddressString()
echoClnContainer := s.getTransientContainerByName("client-application")
echoClnContainer := s.getTransientContainerByName("client-app")
clientVclConfContent := fmt.Sprintf(vclTemplate, echoClnContainer.getContainerWorkDir(), "2")
echoClnContainer.createFile("/vcl.conf", clientVclConfContent)