Add a set of bridgedomain unit tests, including a fully formed correct one. Fix one bug found along the way!
This commit is contained in:
48
unittest/correct-bridgedomain.yaml
Normal file
48
unittest/correct-bridgedomain.yaml
Normal file
@ -0,0 +1,48 @@
|
||||
test:
|
||||
description: "A few correct examples of well formed bridgedomains"
|
||||
errors:
|
||||
count: 0
|
||||
---
|
||||
bondethernets:
|
||||
BondEthernet0:
|
||||
interfaces: [ GigabitEthernet3/0/0, GigabitEthernet3/0/1 ]
|
||||
|
||||
interfaces:
|
||||
GigabitEthernet1/0/0:
|
||||
mtu: 3000
|
||||
GigabitEthernet1/0/1:
|
||||
mtu: 3000
|
||||
|
||||
GigabitEthernet2/0/0:
|
||||
mtu: 9000
|
||||
sub-interfaces:
|
||||
100:
|
||||
mtu: 2000
|
||||
GigabitEthernet2/0/1:
|
||||
mtu: 9000
|
||||
sub-interfaces:
|
||||
100:
|
||||
mtu: 2000
|
||||
|
||||
GigabitEthernet3/0/0:
|
||||
mtu: 9000
|
||||
GigabitEthernet3/0/1:
|
||||
mtu: 9000
|
||||
|
||||
BondEthernet0:
|
||||
mtu: 3000
|
||||
sub-interfaces:
|
||||
100:
|
||||
mtu: 2000
|
||||
|
||||
bridgedomains:
|
||||
bd10:
|
||||
description: "Bridge Domain 10"
|
||||
mtu: 3000
|
||||
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet1/0/1, BondEthernet0 ]
|
||||
bd11:
|
||||
description: "Bridge Domain 11"
|
||||
mtu: 2000
|
||||
interfaces: [ GigabitEthernet2/0/0.100, GigabitEthernet2/0/1.100, BondEthernet0.100 ]
|
||||
lcp: "bvi11"
|
||||
addresses: [ 192.0.2.1/24, 2001:db8::1/64 ]
|
19
unittest/error-bridgedomain1.yaml
Normal file
19
unittest/error-bridgedomain1.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
test:
|
||||
description: "Interfaces put into the bridge, must exist as phy or sub-interface"
|
||||
errors:
|
||||
expected:
|
||||
- "bridgedomain .* member .* doesn't exist"
|
||||
count: 2
|
||||
---
|
||||
interfaces:
|
||||
GigabitEthernet1/0/0:
|
||||
description: "This is the wrong interface, the bridge has Gi1/0/1, not Gi1/0/0"
|
||||
GigabitEthernet2/0/0:
|
||||
sub-interfaces:
|
||||
101:
|
||||
description: "This is the wrong interface, the bridge has Gi2/0/0.100, not Gi2/0/0.101"
|
||||
|
||||
bridgedomains:
|
||||
bd10:
|
||||
description: "Bridge Domain 10"
|
||||
interfaces: [ GigabitEthernet1/0/1, GigabitEthernet2/0/0.100 ]
|
20
unittest/error-bridgedomain2.yaml
Normal file
20
unittest/error-bridgedomain2.yaml
Normal file
@ -0,0 +1,20 @@
|
||||
test:
|
||||
description: "Interfaces put into the bridge, can't be L3 (so cannot have an LCP)"
|
||||
errors:
|
||||
expected:
|
||||
- "bridgedomain .* member .* has an LCP"
|
||||
count: 3
|
||||
---
|
||||
interfaces:
|
||||
GigabitEthernet1/0/0:
|
||||
lcp: "e1-0-0"
|
||||
GigabitEthernet2/0/0:
|
||||
lcp: "e2-0-0"
|
||||
sub-interfaces:
|
||||
101:
|
||||
lcp: "v101"
|
||||
|
||||
bridgedomains:
|
||||
bd10:
|
||||
description: "Bridge Domain 10"
|
||||
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet2/0/0, GigabitEthernet2/0/0.101 ]
|
22
unittest/error-bridgedomain3.yaml
Normal file
22
unittest/error-bridgedomain3.yaml
Normal file
@ -0,0 +1,22 @@
|
||||
test:
|
||||
description: "Interfaces put into the bridge, can't be L3 (so cannot have an address)"
|
||||
errors:
|
||||
expected:
|
||||
- "interface .* has adddress.* but no LCP"
|
||||
- "sub-interface .* has address.* but .* does not have LCP"
|
||||
- "bridgedomain .* member .* has an address"
|
||||
count: 6
|
||||
---
|
||||
interfaces:
|
||||
GigabitEthernet1/0/0:
|
||||
addresses: [ 192.0.2.1/29 ]
|
||||
GigabitEthernet2/0/0:
|
||||
addresses: [ 192.0.2.9/29 ]
|
||||
sub-interfaces:
|
||||
101:
|
||||
addresses: [ 192.0.2.17/29 ]
|
||||
|
||||
bridgedomains:
|
||||
bd10:
|
||||
description: "Bridge Domain 10"
|
||||
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet2/0/0, GigabitEthernet2/0/0.101 ]
|
21
unittest/error-bridgedomain4.yaml
Normal file
21
unittest/error-bridgedomain4.yaml
Normal file
@ -0,0 +1,21 @@
|
||||
test:
|
||||
description: "In a BridgeDomain, all members must have the same MTU as the bridge itself"
|
||||
errors:
|
||||
expected:
|
||||
- "bridgedomain .* member .* has MTU (2000|3000|500), while bridge has 1500"
|
||||
count: 3
|
||||
---
|
||||
interfaces:
|
||||
GigabitEthernet1/0/0:
|
||||
mtu: 2000
|
||||
GigabitEthernet2/0/0:
|
||||
mtu: 3000
|
||||
sub-interfaces:
|
||||
101:
|
||||
mtu: 500
|
||||
|
||||
bridgedomains:
|
||||
bd10:
|
||||
description: "Bridge Domain 10"
|
||||
mtu: 1500
|
||||
interfaces: [ GigabitEthernet1/0/0, GigabitEthernet2/0/0, GigabitEthernet2/0/0.101 ]
|
@ -215,7 +215,7 @@ def get_lcp(yaml, ifname):
|
||||
return iface['lcp']
|
||||
if not is_l3(yaml, ifname):
|
||||
return None
|
||||
if not 'lcp' in parent_iface:
|
||||
if parent_iface and not 'lcp' in parent_iface:
|
||||
return None
|
||||
if not 'encapsulation' in iface:
|
||||
if not '.' in ifname:
|
||||
|
Reference in New Issue
Block a user