hs-test: support for multiple workers
[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 func (s *VethsSuite) SetupSuite() {
18         time.Sleep(1 * time.Second)
19         s.HstSuite.SetupSuite()
20         s.configureNetworkTopology("2peerVeth")
21         s.loadContainerTopology("2peerVeth")
22 }
23
24 func (s *VethsSuite) SetupTest() {
25         s.HstSuite.SetupTest()
26
27         // Setup test conditions
28
29         var sessionConfig Stanza
30         sessionConfig.
31                 newStanza("session").
32                 append("enable").
33                 append("use-app-socket-api").close()
34
35         // ... For server
36         serverContainer := s.getContainerByName("server-vpp")
37
38         cpus := s.AllocateCpus()
39         serverVpp, _ := serverContainer.newVppInstance(cpus, sessionConfig)
40         s.assertNotNil(serverVpp)
41
42         s.setupServerVpp()
43
44         // ... For client
45         clientContainer := s.getContainerByName("client-vpp")
46
47         cpus = s.AllocateCpus()
48         clientVpp, _ := clientContainer.newVppInstance(cpus, sessionConfig)
49         s.assertNotNil(clientVpp)
50
51         s.setupClientVpp()
52 }
53
54 func (s *VethsSuite) setupServerVpp() {
55         serverVpp := s.getContainerByName("server-vpp").vppInstance
56
57         err := serverVpp.start()
58         s.assertNil(err)
59
60         serverVeth := s.netInterfaces[serverInterfaceName]
61         idx, err := serverVpp.createAfPacket(serverVeth)
62         s.assertNil(err)
63         s.assertNotEqual(0, idx)
64
65         namespaceSecret := "1"
66         err = serverVpp.addAppNamespace(1, idx, namespaceSecret)
67         s.assertNil(err)
68 }
69
70 func (s *VethsSuite) setupClientVpp() {
71         clientVpp := s.getContainerByName("client-vpp").vppInstance
72
73         err := clientVpp.start()
74         s.assertNil(err)
75
76         clientVeth := s.netInterfaces[clientInterfaceName]
77         idx, err := clientVpp.createAfPacket(clientVeth)
78         s.assertNil(err)
79         s.assertNotEqual(0, idx)
80
81         clientNamespaceSecret := "2"
82         err = clientVpp.addAppNamespace(2, idx, clientNamespaceSecret)
83         s.assertNil(err)
84 }