| 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) |
| } |