81a21a2ce5fb9445c19952317b8cdee3dae6694f
[vpp.git] / extras / hs-test / suite_veth_test.go
1 package main
2
3 import (
4         "time"
5 )
6
7 const (
8         // These correspond to names used in yaml config
9         serverInterfaceName = "vppsrv"
10         clientInterfaceName = "vppcln"
11 )
12
13 type VethsSuite struct {
14         HstSuite
15 }
16
17 var ConvertedTests = map[string]any{
18         "TestVeths/TestEchoBuiltin":    "",
19         "TestVeths/TestHttpCli":        "",
20         "TestVeths/TestVclEchoTcp":     "",
21         "TestVeths/TestVclRetryAttach": "",
22 }
23
24 func (s *VethsSuite) SetupSuite() {
25         time.Sleep(1 * time.Second)
26
27         s.configureNetworkTopology("2peerVeth")
28
29         s.loadContainerTopology("2peerVeth")
30 }
31
32 func (s *VethsSuite) SetupTest() {
33         s.SetupVolumes()
34         s.SetupContainers()
35
36         // TODO remove this after all tests are converted to configuration from test suite
37         if _, ok := ConvertedTests[s.T().Name()]; !ok {
38                 return
39         }
40
41         // Setup test conditions
42
43         var startupConfig Stanza
44         startupConfig.
45                 NewStanza("session").
46                 Append("enable").
47                 Append("use-app-socket-api").Close()
48
49         // ... For server
50         serverContainer := s.getContainerByName("server-vpp")
51
52         serverVpp, _ := serverContainer.newVppInstance(startupConfig)
53         s.assertNotNil(serverVpp)
54
55         s.setupServerVpp()
56
57         // ... For client
58         clientContainer := s.getContainerByName("client-vpp")
59
60         clientVpp, _ := clientContainer.newVppInstance(startupConfig)
61         s.assertNotNil(clientVpp)
62
63         s.setupClientVpp()
64 }
65
66 func (s *VethsSuite) setupServerVpp() {
67         serverVpp := s.getContainerByName("server-vpp").vppInstance
68
69         err := serverVpp.start()
70         s.assertNil(err)
71
72         serverVeth := s.veths["vppsrv"]
73         idx, err := serverVpp.createAfPacket(serverVeth)
74         s.assertNil(err)
75         s.assertNotEqual(0, idx)
76
77         namespaceSecret := "1"
78         err = serverVpp.addAppNamespace(1, idx, namespaceSecret)
79         s.assertNil(err)
80
81 }
82
83 func (s *VethsSuite) setupClientVpp() {
84         clientVpp := s.getContainerByName("client-vpp").vppInstance
85
86         err := clientVpp.start()
87         s.assertNil(err)
88
89         clientVeth := s.veths["vppcln"]
90         idx, err := clientVpp.createAfPacket(clientVeth)
91         s.assertNil(err)
92         s.assertNotEqual(0, idx)
93
94         clientNamespaceSecret := "2"
95         err = clientVpp.addAppNamespace(2, idx, clientNamespaceSecret)
96         s.assertNil(err)
97 }