aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorselias <samelias@cisco.com>2016-05-20 13:51:48 +0200
committerMatej Klotton <mklotton@cisco.com>2016-05-30 10:09:35 +0000
commitfdc6e0fc0c675eb4faa699fef7e1e2ca91df2b03 (patch)
tree04131831a5c50bc1965e6ffe9ad64cc7202c8a91
parentf94e16167519c74707ec8b606da3f7b97c749c66 (diff)
Update Honeycomb tests
- add new test cases based on reported bugs - minor fixes Change-Id: I8b7464bc1f4e786e3a0ef67ba64d81e1c25ae5cf Signed-off-by: selias <samelias@cisco.com>
-rw-r--r--resources/libraries/python/IPUtil.py4
-rw-r--r--resources/libraries/robot/honeycomb/bridge_domain.robot15
-rw-r--r--resources/libraries/robot/honeycomb/honeycomb.robot4
-rw-r--r--resources/libraries/robot/honeycomb/interfaces.robot1
-rw-r--r--resources/libraries/robot/honeycomb/vxlan.robot8
-rw-r--r--tests/suites/honeycomb/2 - vxlan.robot23
-rw-r--r--tests/suites/honeycomb/3 - bridge_domain.robot38
7 files changed, 63 insertions, 30 deletions
diff --git a/resources/libraries/python/IPUtil.py b/resources/libraries/python/IPUtil.py
index 4b6e2766d8..e364e60cee 100644
--- a/resources/libraries/python/IPUtil.py
+++ b/resources/libraries/python/IPUtil.py
@@ -56,9 +56,9 @@ def convert_ipv4_netmask_prefix(network):
net = IPv4Network(u"{0}/{1}".format(temp_address, network), False)
if isinstance(network, int) and (0 < network < 33):
- return net.netmask
+ return str(net.netmask)
elif isinstance(network, basestring):
- return net.prefixlen
+ return int(net.prefixlen)
else:
raise Exception("Value {0} is not a valid ipv4 netmask or network"
" prefix length".format(network))
diff --git a/resources/libraries/robot/honeycomb/bridge_domain.robot b/resources/libraries/robot/honeycomb/bridge_domain.robot
index f84bcc3b2f..29510bdd7a 100644
--- a/resources/libraries/robot/honeycomb/bridge_domain.robot
+++ b/resources/libraries/robot/honeycomb/bridge_domain.robot
@@ -64,7 +64,7 @@
| | ... | \| Bridge domain configuration from Honeycomb should be \
| | ... | \| ${nodes['DUT1']} \| bd-04 \| ${{flood:True,learn:False}} \|
| | [Arguments] | ${node} | ${bd_name} | ${settings}
-| | ${api_data}= | Get bd cfg data | ${node} | ${bd_name}
+| | ${api_data}= | Get bd oper data | ${node} | ${bd_name}
| | :FOR | ${key} | IN | @{settings.keys()}
| | | Should be equal | ${settings['${key}']} | ${api_data['${key}']}
@@ -136,10 +136,13 @@
| | ${if2_data}= | interfaceAPI.Get interface oper data
| | ... | ${node} | ${interface2}
| | Should be equal | ${if1_data['v3po:l2']['bridge-domain']}
-| | ... | ${if1_data['v3po:l2']['bridge-domain']} | ${bd_name}
-| | :FOR | ${key} | IN | @{settings.keys()}
-| | | Should be equal | ${if1_data['v3po:l2']['${key}']}
-| | | ... | ${if2_data['v3po:l2']['${key}']} | ${settings['${key}']}
+| | ... | ${if2_data['v3po:l2']['bridge-domain']} | ${bd_name}
+| | Should be equal | ${if1_data['v3po:l2']['split-horizon-group']}
+| | ... | ${if2_data['v3po:l2']['split-horizon-group']}
+| | ... | ${settings['split_horizon_group']}
+| | Should be equal | ${if1_data['v3po:l2']['bridged-virtual-interface']}
+| | ... | ${if2_data['v3po:l2']['bridged-virtual-interface']}
+| | ... | ${settings['bvi']}
| VAT should show interfaces assigned to bridge domain
| | [Documentation] | Uses VAT to verify interface assignment to\
@@ -195,7 +198,7 @@
| | ...
| | ... | \| Honeycomb should show no bridge domains \| ${nodes['DUT1']} \|
| | [Arguments] | ${node}
-| | ${bd_data} | Get all BDs cfg data | ${node}
+| | ${bd_data}= | Get all BDs oper data | ${node}
| | Should be empty | ${bd_data}
| VAT should show no bridge domains
diff --git a/resources/libraries/robot/honeycomb/honeycomb.robot b/resources/libraries/robot/honeycomb/honeycomb.robot
index c71d6a7257..ee8cfbc408 100644
--- a/resources/libraries/robot/honeycomb/honeycomb.robot
+++ b/resources/libraries/robot/honeycomb/honeycomb.robot
@@ -28,7 +28,7 @@
| | ... | - 4. Configure honeycomb nodes using HTTP PUT request
| | ...
| | ... | _Arguments:_
-| | ... | - ${duts} - list of nodes to setup Honeycomb on
+| | ... | - duts - list of nodes to setup Honeycomb on
| | ...
| | ... | _Used global constants and variables:_
| | ... | - RESOURCES_TPL_HC - path to honeycomb templates directory
@@ -50,7 +50,7 @@
| | ... | 200 -> 404 -> connection refused (pass)
| | ...
| | ... | _Arguments:_
-| | ... | - ${duts} - list of nodes to stop Honeycomb on
+| | ... | - duts - list of nodes to stop Honeycomb on
| | ...
| | ... | _Used global constants and variables:_
| | ... | - RESOURCES_TPL_HC - path to honeycomb templates directory
diff --git a/resources/libraries/robot/honeycomb/interfaces.robot b/resources/libraries/robot/honeycomb/interfaces.robot
index f1f7cea2d5..a187a107ff 100644
--- a/resources/libraries/robot/honeycomb/interfaces.robot
+++ b/resources/libraries/robot/honeycomb/interfaces.robot
@@ -334,4 +334,3 @@
| | [Arguments] | ${node} | ${interface} | ${mtu} | ${vrf-id}
| | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface}
| | Should be equal | ${vat_data['mtu']} | ${mtu}
-| | Should be equal | ${vat_data['sub_inner_vlan_id']} | ${vrf-id}
diff --git a/resources/libraries/robot/honeycomb/vxlan.robot b/resources/libraries/robot/honeycomb/vxlan.robot
index a57c965fa3..07c5495ec7 100644
--- a/resources/libraries/robot/honeycomb/vxlan.robot
+++ b/resources/libraries/robot/honeycomb/vxlan.robot
@@ -29,7 +29,7 @@
| | ... | *Example:*
| | ... | \| Honeycomb sets interface VxLAN configuration \
| | ... | \|${nodes['DUT1']} \| vxlan_01 \| ${{'src':'192.168.0.2',\
-| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
+| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
| | ...
| | [Arguments] | ${node} | ${interface} | ${settings}
| | interfaceAPI.Create VxLAN interface | ${node} | ${interface}
@@ -62,7 +62,7 @@
| | ...
| | ... | \| VxLAN configuration from Honeycomb should be \
| | ... | \|${nodes['DUT1']} \| vxlan_01 \| ${{'src':'192.168.0.2',\
-| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
+| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
| | ...
| | [Arguments] | ${node} | ${interface} | ${settings}
| | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface}
@@ -82,7 +82,7 @@
| | ...
| | ... | \| VxLAN configuration from Honeycomb should be \
| | ... | \|${nodes['DUT1']} \| ${{'src':'192.168.0.2',\
-| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
+| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
| | ...
| | ... | *Note:*
| | ... | Due to the difficulty of identifying newly created interfaces by name\
@@ -145,7 +145,7 @@
| | ...
| | ... | \| Honeycomb fails setting VxLan on different interface type\
| | ... | \|${nodes['DUT1']} \| GigabitEthernet0/9/0 \| ${{'src':'192.168.0.2',\
-| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
+| | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \|
| | ...
| | [Arguments] | ${node} | ${interface} | ${settings}
| | Run Keyword And Expect Error | HoneycombError: * Status code: 500.
diff --git a/tests/suites/honeycomb/2 - vxlan.robot b/tests/suites/honeycomb/2 - vxlan.robot
index 678717c74f..64bfb3814c 100644
--- a/tests/suites/honeycomb/2 - vxlan.robot
+++ b/tests/suites/honeycomb/2 - vxlan.robot
@@ -23,6 +23,8 @@
| ... | encap-vrf-id=${0}
| &{vxlan_settings_ipv6}= | src=10::10 | dst=10::11 | vni=${88}
| ... | encap-vrf-id=${0}
+| &{vxlan_settings_ipv6_long}= | src=10:0:0:0:0:0:0:10 | dst=10:0:0:0:0:0:0:11
+| ... | vni=${88} | encap-vrf-id=${0}
*** Settings ***
| Resource | resources/libraries/robot/default.robot
@@ -60,6 +62,22 @@
| | ... | ${node} | ${vx_interface}
| | And VxLAN configuration from VAT should be empty | ${node}
+Honeycomb can configure VXLAN tunnel after one has been disabled
+| | [Documentation] | Check if Honeycomb API can configure VxLAN settings again\
+| | ... | after previous settings have been removed.
+| | [Tags] | honeycomb_sanity
+| | [Teardown] | Honeycomb removes VxLAN tunnel settings
+| | ... | ${node} | ${vx_interface}
+| | Given VxLAN configuration from Honeycomb should be empty
+| | ... | ${node} | ${vx_interface}
+| | And VxLAN configuration from VAT should be empty | ${node}
+| | When Honeycomb sets interface VxLAN configuration
+| | ... | ${node} | ${vx_interface} | ${vxlan_settings2}
+| | Then VxLAN configuration from Honeycomb should be
+| | ... | ${node} | ${vx_interface} | ${vxlan_settings2}
+| | And VxLAN configuration from VAT should be
+| | ... | ${node} | ${vxlan_settings2}
+
| Honeycomb does not set VxLAN configuration on another interface type
| | [Documentation] | Check if Honeycomb API prevents setting VxLAN\
| | ... | on incorrect interface.
@@ -90,13 +108,14 @@
| | [Documentation] | Check if Honeycomb API can configure VxLAN with\
| | ... | ipv6 settings.
| | [Tags] | honeycomb_sanity
+| | [Teardown] | Honeycomb removes VxLAN tunnel settings
+| | ... | ${node} | ${vx_interface}
| | Given VxLAN configuration from Honeycomb should be empty
| | ... | ${node} | ${vx_interface}
| | And VxLAN configuration from VAT should be empty | ${node}
| | When Honeycomb sets interface VxLAN configuration
| | ... | ${node} | ${vx_interface} | ${vxlan_settings_ipv6}
| | Then VxLAN configuration from Honeycomb should be
-| | ... | ${node} | ${vx_interface} | ${vxlan_settings_ipv6}
+| | ... | ${node} | ${vx_interface} | ${vxlan_settings_ipv6_long}
| | And VxLAN configuration from VAT should be
| | ... | ${node} | ${vxlan_settings_ipv6}
-
diff --git a/tests/suites/honeycomb/3 - bridge_domain.robot b/tests/suites/honeycomb/3 - bridge_domain.robot
index e99b659b3f..d1f1c7b329 100644
--- a/tests/suites/honeycomb/3 - bridge_domain.robot
+++ b/tests/suites/honeycomb/3 - bridge_domain.robot
@@ -42,19 +42,6 @@
| | And Bridge domain configuration from VAT should be
| | ... | ${node} | ${0} | ${bd_settings}
-| Honeycomb assigns interfaces to bridge domain
-| | [Documentation] | Check if Honeycomb can assign VPP interfaces to an\
-| | ... | existing bridge domain.
-| | [Tags] | honeycomb_sanity
-| | Given Bridge domain configuration from Honeycomb should be
-| | ... | ${node} | ${bd1_name} | ${bd_settings}
-| | When Honeycomb adds interfaces to bridge domain
-| | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings}
-| | Then Honeycomb should show interfaces assigned to bridge domain
-| | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings}
-| | And VAT should show interfaces assigned to bridge domain
-| | ... | ${node} | ${0} | @{interfaces} | ${if_settings}
-
| Honeycomb manages multiple bridge domains on node
| | [Documentation] | Check if Honeycomb can manage multiple bridge domains on\
| | ... | a single node.
@@ -81,3 +68,28 @@
| | When Honeycomb removes all bridge domains | ${node}
| | Then Honeycomb should show no bridge domains | ${node}
| | And VAT should show no bridge domains | ${node}
+
+| Honeycomb assigns interfaces to bridge domain
+| | [Documentation] | Check if Honeycomb can assign VPP interfaces to an\
+| | ... | existing bridge domain.
+| | [Tags] | honeycomb_sanity
+| | Given Honeycomb creates first l2 bridge domain
+| | ... | ${node} | ${bd1_name} | ${bd_settings}
+| | When Honeycomb adds interfaces to bridge domain
+| | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings}
+| | Then Honeycomb should show interfaces assigned to bridge domain
+| | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings}
+| | And VAT should show interfaces assigned to bridge domain
+| | ... | ${node} | ${0} | @{interfaces} | ${if_settings}
+
+| Honeycomb removes bridge domain with an interface assigned
+| | [Documentation] | Check if Honeycomb can remove a bridge domain that has an\
+| | ... | interface assigned to it.
+| | [Tags] | honeycomb_sanity
+| | Given Honeycomb should show interfaces assigned to bridge domain
+| | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings}
+| | And VAT should show interfaces assigned to bridge domain
+| | ... | ${node} | ${0} | @{interfaces} | ${if_settings}
+| | When Honeycomb removes all bridge domains | ${node}
+| | Then Honeycomb should show no bridge domains | ${node}
+| | And VAT should show no bridge domains | ${node}