bridge: simplify version-based testcase code
Signed-off-by: Dan Williams <dcbw@redhat.com>
This commit is contained in:
parent
8c25db87b1
commit
c8f341dff9
@ -350,33 +350,40 @@ func checkVlan(vlanId int, bridgeVlanInfo []*nl.BridgeVlanInfo) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type cmdAddDelTester interface {
|
type cmdAddDelTester interface {
|
||||||
setNS(testNS ns.NetNS, targetNS ns.NetNS)
|
|
||||||
cmdAddTest(tc testCase, dataDir string) (types.Result, error)
|
cmdAddTest(tc testCase, dataDir string) (types.Result, error)
|
||||||
cmdCheckTest(tc testCase, conf *Net, dataDir string)
|
cmdCheckTest(tc testCase, conf *Net, dataDir string)
|
||||||
cmdDelTest(tc testCase, dataDir string)
|
cmdDelTest(tc testCase, dataDir string)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testerByVersion(version string) cmdAddDelTester {
|
type testerBase struct {
|
||||||
switch {
|
|
||||||
case strings.HasPrefix(version, "0.4."):
|
|
||||||
return &testerV04x{}
|
|
||||||
case strings.HasPrefix(version, "0.3."):
|
|
||||||
return &testerV03x{}
|
|
||||||
default:
|
|
||||||
return &testerV01xOr02x{}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
type testerV04x struct {
|
|
||||||
testNS ns.NetNS
|
testNS ns.NetNS
|
||||||
targetNS ns.NetNS
|
targetNS ns.NetNS
|
||||||
args *skel.CmdArgs
|
args *skel.CmdArgs
|
||||||
vethName string
|
vethName string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tester *testerV04x) setNS(testNS ns.NetNS, targetNS ns.NetNS) {
|
type testerV04x testerBase
|
||||||
tester.testNS = testNS
|
type testerV03x testerBase
|
||||||
tester.targetNS = targetNS
|
type testerV01xOr02x testerBase
|
||||||
|
|
||||||
|
func newTesterByVersion(version string, testNS, targetNS ns.NetNS) cmdAddDelTester {
|
||||||
|
switch {
|
||||||
|
case strings.HasPrefix(version, "0.4."):
|
||||||
|
return &testerV04x{
|
||||||
|
testNS: testNS,
|
||||||
|
targetNS: targetNS,
|
||||||
|
}
|
||||||
|
case strings.HasPrefix(version, "0.3."):
|
||||||
|
return &testerV03x{
|
||||||
|
testNS: testNS,
|
||||||
|
targetNS: targetNS,
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
return &testerV01xOr02x{
|
||||||
|
testNS: testNS,
|
||||||
|
targetNS: targetNS,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tester *testerV04x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
func (tester *testerV04x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
||||||
@ -625,18 +632,6 @@ func (tester *testerV04x) cmdDelTest(tc testCase, dataDir string) {
|
|||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
}
|
}
|
||||||
|
|
||||||
type testerV03x struct {
|
|
||||||
testNS ns.NetNS
|
|
||||||
targetNS ns.NetNS
|
|
||||||
args *skel.CmdArgs
|
|
||||||
vethName string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tester *testerV03x) setNS(testNS ns.NetNS, targetNS ns.NetNS) {
|
|
||||||
tester.testNS = testNS
|
|
||||||
tester.targetNS = targetNS
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tester *testerV03x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
func (tester *testerV03x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
||||||
// Generate network config and command arguments
|
// Generate network config and command arguments
|
||||||
tester.args = tc.createCmdArgs(tester.targetNS, dataDir)
|
tester.args = tc.createCmdArgs(tester.targetNS, dataDir)
|
||||||
@ -861,18 +856,6 @@ func (tester *testerV03x) cmdDelTest(tc testCase, dataDir string) {
|
|||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
}
|
}
|
||||||
|
|
||||||
type testerV01xOr02x struct {
|
|
||||||
testNS ns.NetNS
|
|
||||||
targetNS ns.NetNS
|
|
||||||
args *skel.CmdArgs
|
|
||||||
vethName string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tester *testerV01xOr02x) setNS(testNS ns.NetNS, targetNS ns.NetNS) {
|
|
||||||
tester.testNS = testNS
|
|
||||||
tester.targetNS = targetNS
|
|
||||||
}
|
|
||||||
|
|
||||||
func (tester *testerV01xOr02x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
func (tester *testerV01xOr02x) cmdAddTest(tc testCase, dataDir string) (types.Result, error) {
|
||||||
// Generate network config and calculate gateway addresses
|
// Generate network config and calculate gateway addresses
|
||||||
tester.args = tc.createCmdArgs(tester.targetNS, dataDir)
|
tester.args = tc.createCmdArgs(tester.targetNS, dataDir)
|
||||||
@ -997,13 +980,11 @@ func (tester *testerV01xOr02x) cmdDelTest(tc testCase, dataDir string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func cmdAddDelTest(testNS ns.NetNS, tc testCase, dataDir string) {
|
func cmdAddDelTest(testNS ns.NetNS, tc testCase, dataDir string) {
|
||||||
// Get a Add/Del tester based on test case version
|
|
||||||
tester := testerByVersion(tc.cniVersion)
|
|
||||||
|
|
||||||
targetNS, err := testutils.NewNS()
|
targetNS, err := testutils.NewNS()
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
defer targetNS.Close()
|
defer targetNS.Close()
|
||||||
tester.setNS(testNS, targetNS)
|
|
||||||
|
tester := newTesterByVersion(tc.cniVersion, testNS, targetNS)
|
||||||
|
|
||||||
// Test IP allocation
|
// Test IP allocation
|
||||||
result, err := tester.cmdAddTest(tc, dataDir)
|
result, err := tester.cmdAddTest(tc, dataDir)
|
||||||
@ -1069,13 +1050,11 @@ func buildOneConfig(name, cniVersion string, orig *Net, prevResult types.Result)
|
|||||||
func cmdAddDelCheckTest(testNS ns.NetNS, tc testCase, dataDir string) {
|
func cmdAddDelCheckTest(testNS ns.NetNS, tc testCase, dataDir string) {
|
||||||
Expect(tc.cniVersion).To(Equal("0.4.0"))
|
Expect(tc.cniVersion).To(Equal("0.4.0"))
|
||||||
|
|
||||||
// Get a Add/Del tester based on test case version
|
|
||||||
tester := testerByVersion(tc.cniVersion)
|
|
||||||
|
|
||||||
targetNS, err := testutils.NewNS()
|
targetNS, err := testutils.NewNS()
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
defer targetNS.Close()
|
defer targetNS.Close()
|
||||||
tester.setNS(testNS, targetNS)
|
|
||||||
|
tester := newTesterByVersion(tc.cniVersion, testNS, targetNS)
|
||||||
|
|
||||||
// Test IP allocation
|
// Test IP allocation
|
||||||
prevResult, err := tester.cmdAddTest(tc, dataDir)
|
prevResult, err := tester.cmdAddTest(tc, dataDir)
|
||||||
@ -1331,11 +1310,14 @@ var _ = Describe("bridge Operations", func() {
|
|||||||
expGWCIDRs: []string{"10.1.2.1/24"},
|
expGWCIDRs: []string{"10.1.2.1/24"},
|
||||||
}
|
}
|
||||||
|
|
||||||
tester := testerV03x{}
|
|
||||||
targetNS, err := testutils.NewNS()
|
targetNS, err := testutils.NewNS()
|
||||||
Expect(err).NotTo(HaveOccurred())
|
Expect(err).NotTo(HaveOccurred())
|
||||||
defer targetNS.Close()
|
defer targetNS.Close()
|
||||||
tester.setNS(originalNS, targetNS)
|
|
||||||
|
tester := testerV03x{
|
||||||
|
testNS: originalNS,
|
||||||
|
targetNS: targetNS,
|
||||||
|
}
|
||||||
tester.args = tc.createCmdArgs(targetNS, dataDir)
|
tester.args = tc.createCmdArgs(targetNS, dataDir)
|
||||||
|
|
||||||
// Execute cmdDEL on the plugin, expect no errors
|
// Execute cmdDEL on the plugin, expect no errors
|
||||||
|
Loading…
x
Reference in New Issue
Block a user