10 . "github.com/onsi/ginkgo/v2"
13 // These correspond to names used in yaml config
15 serverInterfaceName = "srv"
16 clientInterfaceName = "cln"
19 var vethTests = []func(s *VethsSuite){}
20 var vethSoloTests = []func(s *VethsSuite){}
22 type VethsSuite struct {
26 func registerVethTests(tests ...func(s *VethsSuite)) {
27 vethTests = append(vethTests, tests...)
29 func registerSoloVethTests(tests ...func(s *VethsSuite)) {
30 vethSoloTests = append(vethSoloTests, tests...)
33 func (s *VethsSuite) SetupSuite() {
34 time.Sleep(1 * time.Second)
35 s.HstSuite.SetupSuite()
36 s.configureNetworkTopology("2peerVeth")
37 s.loadContainerTopology("2peerVeth")
40 func (s *VethsSuite) SetupTest() {
41 s.HstSuite.SetupTest()
43 // Setup test conditions
44 var sessionConfig Stanza
48 append("use-app-socket-api").close()
51 serverContainer := s.getContainerByName("server-vpp")
53 cpus := s.AllocateCpus()
54 serverVpp, err := serverContainer.newVppInstance(cpus, sessionConfig)
55 s.assertNotNil(serverVpp, fmt.Sprint(err))
60 clientContainer := s.getContainerByName("client-vpp")
62 cpus = s.AllocateCpus()
63 clientVpp, err := clientContainer.newVppInstance(cpus, sessionConfig)
64 s.assertNotNil(clientVpp, fmt.Sprint(err))
69 func (s *VethsSuite) setupServerVpp() {
70 serverVpp := s.getContainerByName("server-vpp").vppInstance
71 s.assertNil(serverVpp.start())
73 serverVeth := s.getInterfaceByName(serverInterfaceName)
74 idx, err := serverVpp.createAfPacket(serverVeth)
75 s.assertNil(err, fmt.Sprint(err))
76 s.assertNotEqual(0, idx)
79 func (s *VethsSuite) setupClientVpp() {
80 clientVpp := s.getContainerByName("client-vpp").vppInstance
81 s.assertNil(clientVpp.start())
83 clientVeth := s.getInterfaceByName(clientInterfaceName)
84 idx, err := clientVpp.createAfPacket(clientVeth)
85 s.assertNil(err, fmt.Sprint(err))
86 s.assertNotEqual(0, idx)
89 var _ = Describe("VethsSuite", Ordered, ContinueOnFailure, func() {
105 // https://onsi.github.io/ginkgo/#dynamically-generating-specs
106 for _, test := range vethTests {
108 pc := reflect.ValueOf(test).Pointer()
109 funcValue := runtime.FuncForPC(pc)
110 It(strings.Split(funcValue.Name(), ".")[2], func(ctx SpecContext) {
112 }, SpecTimeout(time.Minute*5))
116 var _ = Describe("VethsSuiteSolo", Ordered, ContinueOnFailure, Serial, func() {
132 // https://onsi.github.io/ginkgo/#dynamically-generating-specs
133 for _, test := range vethSoloTests {
135 pc := reflect.ValueOf(test).Pointer()
136 funcValue := runtime.FuncForPC(pc)
137 It(strings.Split(funcValue.Name(), ".")[2], Label("SOLO"), func(ctx SpecContext) {
139 }, SpecTimeout(time.Minute*5))