summaryrefslogtreecommitdiffstats
path: root/extras/hs-test/framework_test.go
diff options
context:
space:
mode:
authorFilip Tehlar <ftehlar@cisco.com>2022-08-09 14:44:47 +0000
committerFlorin Coras <florin.coras@gmail.com>2022-09-19 21:00:18 +0000
commit229f5fcf188cf710f4a8fb269d92f1a1d04a99da (patch)
treebc2c85a49bac6aea4e5ef3304c356acb75ad9493 /extras/hs-test/framework_test.go
parent6cacc94de3984d9f0cf6d562a27d89a4ab0a89f9 (diff)
misc: add test framework for host stack
Type: feature Signed-off-by: Filip Tehlar <ftehlar@cisco.com> Change-Id: I5a64a2c095cae3a4d5f8fdc73e624b010339ec8e
Diffstat (limited to 'extras/hs-test/framework_test.go')
-rwxr-xr-xextras/hs-test/framework_test.go82
1 files changed, 82 insertions, 0 deletions
diff --git a/extras/hs-test/framework_test.go b/extras/hs-test/framework_test.go
new file mode 100755
index 00000000000..78a289265be
--- /dev/null
+++ b/extras/hs-test/framework_test.go
@@ -0,0 +1,82 @@
+package main
+
+import (
+ "testing"
+ "time"
+
+ "github.com/stretchr/testify/suite"
+)
+
+type TapSuite struct {
+ suite.Suite
+ teardownSuite func()
+}
+
+func (s *TapSuite) SetupSuite() {
+ time.Sleep(1 * time.Second)
+ s.teardownSuite = setupSuite(&s.Suite, "tap")
+}
+
+func (s *TapSuite) TearDownSuite() {
+ s.teardownSuite()
+}
+
+type Veths2Suite struct {
+ suite.Suite
+ teardownSuite func()
+}
+
+func (s *Veths2Suite) SetupSuite() {
+ time.Sleep(1 * time.Second)
+ s.teardownSuite = setupSuite(&s.Suite, "2peerVeth")
+}
+
+func (s *Veths2Suite) TearDownSuite() {
+ s.teardownSuite()
+}
+
+type NsSuite struct {
+ suite.Suite
+ teardownSuite func()
+}
+
+func (s *NsSuite) SetupSuite() {
+ s.teardownSuite = setupSuite(&s.Suite, "ns")
+}
+
+func (s *NsSuite) TearDownSuite() {
+ s.teardownSuite()
+}
+
+func setupSuite(s *suite.Suite, topologyName string) func() {
+ t := s.T()
+ topology, err := LoadTopology(TopologyDir, topologyName)
+ if err != nil {
+ t.Fatalf("error on loading topology '%s': %v", topologyName, err)
+ }
+ err = topology.Configure()
+ if err != nil {
+ t.Fatalf("failed to configure %s: %v", topologyName, err)
+ }
+
+ t.Logf("topo %s loaded", topologyName)
+ return func() {
+ topology.Unconfigure()
+ }
+}
+
+func TestTapSuite(t *testing.T) {
+ var m TapSuite
+ suite.Run(t, &m)
+}
+
+func TestNs(t *testing.T) {
+ var m NsSuite
+ suite.Run(t, &m)
+}
+
+func TestVeths2(t *testing.T) {
+ var m Veths2Suite
+ suite.Run(t, &m)
+
+}