82 lines
1.4 KiB
Go
82 lines
1.4 KiB
Go
|
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)
|
||
|
}
|