aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/honeycomb/persistence.robot
diff options
context:
space:
mode:
authorselias <samelias@cisco.com>2017-05-09 12:38:35 +0200
committerSamuel Eliáš <samelias@cisco.com>2017-05-17 07:27:59 +0000
commita114591eac9f52502048db886da2fb228c62254d (patch)
tree24426e7fe44f24e8c9471da885269813214550e9 /resources/libraries/robot/honeycomb/persistence.robot
parent03bb1e5611946a53f243a3d923c8f2d1aeee079a (diff)
CSIT-562 HC Test: Persistence suite rework, part1
- rename keywords that check operational data, to distinguish from keywords that check configuration data - modify existing persistence cases so that they don't affect each other - add feature-specific persistence tests for: Interface Management, L2 bridge - move Interface Management variables to separate file so they can be reused - add new tag HC_PERSIST to execute persistence tests separately - update existing Honeycomb tags to comply with CSIT conventions More feature-specific tests to be added in part2. Change-Id: I8657da4bb9e9a3d5261c04f5f1999b2572f605ef Signed-off-by: selias <samelias@cisco.com>
Diffstat (limited to 'resources/libraries/robot/honeycomb/persistence.robot')
-rw-r--r--resources/libraries/robot/honeycomb/persistence.robot164
1 files changed, 115 insertions, 49 deletions
diff --git a/resources/libraries/robot/honeycomb/persistence.robot b/resources/libraries/robot/honeycomb/persistence.robot
index a1c08c2ec1..2744ba6377 100644
--- a/resources/libraries/robot/honeycomb/persistence.robot
+++ b/resources/libraries/robot/honeycomb/persistence.robot
@@ -87,7 +87,7 @@
| | Setup DUT | ${node}
| | Setup Honeycomb service on DUTs | ${node}
-| Honeycomb configures every setting
+| Multi-Feature Persistence Test Configuration
| | [Documentation] | Uses Honeycomb to set basic settings for VxLAN,\
| | ... | bridge domains, TAP, vhost-user and VLAN.
| | ...
@@ -97,7 +97,7 @@
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Honeycomb configures every setting \| ${nodes['DUT1']} \
+| | ... | \| Multi-Feature Persistence Test Configuration \| ${nodes['DUT1']} \
| | ... | \| GigabitEthernet0/8/0 \|
| | ...
| | [Arguments] | ${node} | ${interface}
@@ -119,7 +119,7 @@
| | Honeycomb configures tag rewrite
| | ... | ${node} | ${interface} | ${sub_if_id} | ${tag_rewrite_pop_1}
-| Honeycomb and VPP should verify every setting
+| Multi-Feature persistence Test Verification
| | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\
| | ... | bridge domains, TAP, vhost-user and VLAN.
| | ...
@@ -129,40 +129,43 @@
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Honeycomb and VPP should verify every setting \| ${nodes['DUT1']} \
+| | ... | \| Multi-Feature persistence Test Verification \| ${nodes['DUT1']} \
| | ... | \| GigabitEthernet0/8/0 \|
| | ...
| | [Arguments] | ${node} | ${interface}
-| | VxLAN configuration from Honeycomb should be
+| | VxLAN Operational Data From Honeycomb Should Be
| | ... | ${node} | ${vx_interface} | ${vxlan_settings}
-| | VxLAN configuration from VAT should be
+| | VxLAN Operational Data From VAT Should Be
| | ... | ${node} | ${vxlan_settings}
-| | Bridge domain configuration from Honeycomb should be
+| | Bridge domain Operational Data From Honeycomb Should Be
| | ... | ${node} | ${bd_name} | ${bd_settings}
-| | Bridge domain configuration from VAT should be
+| | Bridge domain Operational Data From VAT Should Be
| | ... | ${node} | ${0} | ${bd_settings}
-| | TAP configuration from Honeycomb should be
+| | TAP Operational Data From Honeycomb Should Be
| | ... | ${node} | ${tap_interface} | ${tap_settings}
-| | TAP configuration from VAT should be
+| | TAP Operational Data From VAT Should Be
| | ... | ${node} | ${tap_interface} | ${tap_settings}
-| | Vhost-user configuration from Honeycomb should be
+| | Vhost-user Operational Data From Honeycomb Should Be
| | ... | ${node} | ${vhost_interface} | ${vhost_user_client}
-| | Vhost-user configuration from VAT should be
+| | Vhost-user Operational Data From VAT Should Be
| | ... | ${node} | ${vhost_user_client}
-| | Sub-interface configuration from Honeycomb should be
+| | Sub-interface Operational Data From Honeycomb Should Be
| | ... | ${node} | ${interface} | ${sub_if_id} | ${sub_if_1_oper}
-| | Sub-interface configuration from VAT should be
+| | Sub-interface Operational Data From VAT Should Be
| | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper}
| | Interface state from Honeycomb should be | ${node} | ${interface} | up
| | Interface state from VAT should be | ${node} | ${interface} | up
-| | Sub-interface bridge domain configuration from Honeycomb should be
+| | Sub-interface bridge domain Operational Data From Honeycomb Should Be
| | ... | ${node} | ${interface} | ${sub_if_id} | ${sub_bd_settings}
-| | Sub-interface bridge domain configuration from VAT should be
+| | Sub-interface bridge domain Operational Data From VAT Should Be
| | ... | ${node} | ${sub_if_name} | ${sub_bd_settings}
| | Rewrite tag from Honeycomb should be
| | ... | ${node} | ${interface} | ${sub_if_id} | ${tag_rewrite_pop_1_oper}
| | Rewrite tag from VAT should be
| | ... | ${node} | ${sub_if_name} | ${tag_rewrite_pop_1_VAT}
+| | ${data_conf}= | InterfaceAPI.Get all interfaces cfg data | ${node}
+| | ${data_oper}= | InterfaceAPI.Get all interfaces oper data | ${node}
+| | Compare interface lists | ${data_conf} | ${data_oper}
| Honeycomb and VPP should have default configuration
| | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\
@@ -178,83 +181,146 @@
| | ... | ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${node}
-| | VxLAN configuration from Honeycomb should be empty
+| | VxLAN Operational Data From Honeycomb Should Be empty
| | ... | ${node} | ${vx_interface}
-| | VxLAN configuration from VAT should be empty | ${node}
+| | VxLAN Operational Data From VAT Should Be empty | ${node}
| | Honeycomb should show no bridge domains | ${node}
| | VAT should show no bridge domains | ${node}
-| | TAP configuration from Honeycomb should be empty
+| | TAP Operational Data From Honeycomb Should Be empty
| | ... | ${node} | ${tap_interface}
-| | TAP configuration from VAT should be empty
+| | TAP Operational Data From VAT Should Be empty
| | ... | ${node} | ${tap_interface}
-| | Vhost-user configuration from Honeycomb should be empty
+| | Vhost-user Operational Data From Honeycomb Should Be empty
| | ... | ${node} | ${vhost_interface}
-| | Vhost-user configuration from VAT should be empty
+| | Vhost-user Operational Data From VAT Should Be empty
| | ... | ${node}
| | interface state from Honeycomb should be
| | ... | ${node} | ${interface} | down
| | And interface state from VAT should be
| | ... | ${node} | ${interface} | down
-| Honeycomb and VPP should not have default configuration
-| | [Documentation] | Uses Honeycomb and VAT to verify settings for VxLAN,\
-| | ... | bridge domains, TAP, vhost-user and VLAN. Expects any\
-| | ... | configuration other than default.
+| Persistence file is damaged during restart
+| | [Documentation] | Shuts down Honeycomb, modifies persistence files to\
+| | ... | simulate damage, then restarts VPP and starts up Honeycomb again.
| | ...
| | ... | *Arguments:*
| | ... | - node - information about a DUT node. Type: dictionary
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Honeycomb and VPP should not have default configuration \
-| | ... | \| ${nodes['DUT1']} \|
+| | ... | \| Persistence file is damaged during restart \| ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${node}
-| | Run keyword and expect error | *
-| | ... | Honeycomb and VPP should have default configuration | ${node}
+| | Stop Honeycomb service on DUTs | ${node}
+| | Modify persistence files | ${node} | { | abc
+| | Setup DUT | ${node}
+| | Setup Honeycomb service on DUTs | ${node}
-| Honeycomb should show no rogue interfaces
-| | [Documentation] | Checks if operational data contains interfaces not\
-| | ... | present in configuration and vice versa.
+| Log persisted configuration on node
+| | [Documentation] | Logs the content of Honeycomb's persitence files.
| | ...
| | ... | *Arguments:*
| | ... | - node - information about a DUT node. Type: dictionary
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Honeycomb should show no rogue interfaces \| ${nodes['DUT1']} \|
+| | ... | \| Log persisted configuration on node \| ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${node}
-| | ${data_conf}= | InterfaceAPI.Get all interfaces cfg data | ${node}
-| | ${data_oper}= | InterfaceAPI.Get all interfaces oper data | ${node}
-| | Compare interface lists | ${data_conf} | ${data_oper}
+| | Log persisted configuration | ${node}
-| Persistence file is damaged during restart
-| | [Documentation] | Shuts down Honeycomb, modifies persistence files to\
-| | ... | simulate damage, then restarts VPP and starts up Honeycomb again.
+| Interface Persistence Setup
+| | [Documentation] | Configure interface state, ipv4 and ipv6 addresses
+| | ... | and neighbors.
| | ...
| | ... | *Arguments:*
| | ... | - node - information about a DUT node. Type: dictionary
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Persistence file is damaged during restart \| ${nodes['DUT1']} \|
+| | ... | \| Interface Persistence Setup \| ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${node}
-| | Stop Honeycomb service on DUTs | ${node}
-| | Modify persistence files | ${node} | { | abc
-| | Setup DUT | ${node}
-| | Setup Honeycomb service on DUTs | ${node}
+| | Honeycomb and VPP should have default configuration | ${node}
+| | Import Variables | resources/test_data/honeycomb/interface_ip.py
+| | Honeycomb sets interface state | ${node} | ${interface} | up
+| | Honeycomb sets interface ipv4 address with prefix
+| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
+| | Honeycomb adds interface ipv4 neighbor
+| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac}
+| | Honeycomb sets interface ipv6 address
+| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix}
+| | Honeycomb adds interface ipv6 neighbor
+| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac}
-| Log persisted configuration on node
-| | [Documentation] | Logs the content of Honeycomb's persitence files.
+| Interface Persistence Check
+| | [Documentation] | Verify interface state, ipv4 and ipv6 addresses
+| | ... | and neighbors.
| | ...
| | ... | *Arguments:*
| | ... | - node - information about a DUT node. Type: dictionary
| | ...
| | ... | *Example:*
| | ...
-| | ... | \| Log persisted configuration on node \| ${nodes['DUT1']} \|
+| | ... | \| Interface Persistence Check \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${node}
+| | Interface state from Honeycomb should be | ${node} | ${interface} | up
+| | IPv4 address from Honeycomb should be
+| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
+| | IPv4 address from VAT should be
+| | ... | ${node} | ${interface} | ${ipv4_address}
+| | ... | ${ipv4_prefix} | ${ipv4_mask}
+| | IPv4 neighbor from Honeycomb should be
+| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac}
+| | IPv6 address from Honeycomb should contain
+| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix}
+| | IPv6 address from VAT should contain
+| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix}
+| | IPv6 neighbor from Honeycomb should be
+| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac}
+
+| Bridge Domain Persistence Setup
+| | [Documentation] | Configure bridge domain, BD interface assignment
+| | ... | and L2 fib entry.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Bridge Domain Persistence Setup \| ${nodes['DUT1']} \|
| | ...
| | [Arguments] | ${node}
-| | Log persisted configuration | ${node} \ No newline at end of file
+| | Honeycomb and VPP should have default configuration | ${node}
+| | Import Variables | resources/test_data/honeycomb/l2_fib.py
+| | ... | ${node} | ${interface} | ${interface}
+| | Honeycomb creates first l2 bridge domain
+| | ... | ${node} | ${bd_name} | ${bd_settings}
+| | Honeycomb adds interface to bridge domain
+| | ... | ${node} | ${interface} | ${bd_name} | ${if_bd_settings}
+| | Honeycomb adds L2 FIB entry to bridge domain
+| | ... | ${node} | ${bd_name} | ${l2_fib_forward_cfg}
+
+| Bridge Domain Persistence Check
+| | [Documentation] | Verify bridge domain, BD interface assignment
+| | ... | and L2 fib entry.
+| | ...
+| | ... | *Arguments:*
+| | ... | - node - information about a DUT node. Type: dictionary
+| | ...
+| | ... | *Example:*
+| | ...
+| | ... | \| Bridge Domain Persistence Check \| ${nodes['DUT1']} \|
+| | ...
+| | [Arguments] | ${node}
+| | Bridge domain Operational Data From Honeycomb Should Be
+| | ... | ${node} | ${bd_name} | ${bd_settings}
+| | Bridge domain Operational Data From VAT Should Be
+| | ... | ${node} | ${0} | ${bd_settings}
+| | Bridge domain Operational Interface Assignment should be
+| | ... | ${node} | ${interface} | ${if_bd_settings}
+| | L2 FIB Entry from Honeycomb should be
+| | ... | ${node} | ${bd_name} | ${l2_fib_forward_oper}
+| | L2 FIB entry from VAT should be
+| | ... | ${node} | ${bd_index} | ${l2_fib_forward_vat} \ No newline at end of file