diff options
author | selias <samelias@cisco.com> | 2017-05-09 12:38:35 +0200 |
---|---|---|
committer | Samuel Eliáš <samelias@cisco.com> | 2017-05-17 07:27:59 +0000 |
commit | a114591eac9f52502048db886da2fb228c62254d (patch) | |
tree | 24426e7fe44f24e8c9471da885269813214550e9 | |
parent | 03bb1e5611946a53f243a3d923c8f2d1aeee079a (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>
43 files changed, 599 insertions, 423 deletions
diff --git a/bootstrap-hc2vpp-integration.sh b/bootstrap-hc2vpp-integration.sh index 21b4ae7607..ab5fa22a1d 100755 --- a/bootstrap-hc2vpp-integration.sh +++ b/bootstrap-hc2vpp-integration.sh @@ -224,7 +224,7 @@ fi PYTHONPATH=`pwd` pybot -L TRACE -W 136\ -v TOPOLOGY_PATH:${SCRIPT_DIR}/topologies/enabled/topology.yaml \ --suite "tests.func" \ - --include honeycomb_sanity \ + --include HC_FUNC \ --noncritical EXPECTED_FAILING \ tests/ diff --git a/bootstrap-hc2vpp-verify.sh b/bootstrap-hc2vpp-verify.sh index 57fb8a650b..196fb80ac3 100755 --- a/bootstrap-hc2vpp-verify.sh +++ b/bootstrap-hc2vpp-verify.sh @@ -220,7 +220,7 @@ fi PYTHONPATH=`pwd` pybot -L TRACE -W 136\ -v TOPOLOGY_PATH:${SCRIPT_DIR}/topologies/enabled/topology.yaml \ --suite "tests.func" \ - --include honeycomb_sanity \ + --include HC_FUNC \ --noncritical EXPECTED_FAILING \ tests/ diff --git a/docs/tag_documentation.rst b/docs/tag_documentation.rst index a10ac0e2c6..10d00ccd1e 100644 --- a/docs/tag_documentation.rst +++ b/docs/tag_documentation.rst @@ -439,3 +439,20 @@ Multi-threading tags 8 worker threads pinned to 8 dedicated physical cores. 4 receive queues per interface. Main thread pinned to core 0. + + +Honeycomb tags +-------------- + +.. topic:: HC_FUNC + + Honeycomb functional test cases. + +.. topic:: HC_PERSIST + + Honeycomb persistence test cases. + +.. topic:: HC_REST_ONLY + + (Exclusion tag) Honeycomb test cases that cannot be run in Netconf mode + using ODL client for Restfconf -> Netconf translation. diff --git a/resources/libraries/robot/honeycomb/bridge_domain.robot b/resources/libraries/robot/honeycomb/bridge_domain.robot index a286d11907..8f17edafc2 100644 --- a/resources/libraries/robot/honeycomb/bridge_domain.robot +++ b/resources/libraries/robot/honeycomb/bridge_domain.robot @@ -52,7 +52,7 @@ | | [Arguments] | ${node} | ${bd_name} | ${settings} | | Add BD | ${node} | ${bd_name} | &{settings} -| Bridge domain configuration from Honeycomb should be +| Bridge domain Operational Data From Honeycomb Should Be | | [Documentation] | Uses Honeycomb API to verify bridge domain settings\ | | ... | against provided values. | | ... @@ -63,14 +63,14 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Bridge domain configuration from Honeycomb should be \ +| | ... | \| Bridge domain Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| bd-04 \| ${{flood:True,learn:False}} \| | | [Arguments] | ${node} | ${bd_name} | ${settings} | | ${api_data}= | Get bd oper data | ${node} | ${bd_name} | | :FOR | ${key} | IN | @{settings.keys()} | | | Should be equal | ${settings['${key}']} | ${api_data['${key}']} -| Bridge domain configuration from VAT should be +| Bridge domain Operational Data From VAT Should Be | | [Documentation] | Uses VAT to verify bridge domain settings\ | | ... | against provided values. | | ... @@ -81,7 +81,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Bridge domain configuration from VAT should be \ +| | ... | \| Bridge domain Operational Data From VAT Should Be \ | | ... | \| ${nodes['DUT1']} \| bd-04 \| ${{flood:True,learn:False}} \| | | [Arguments] | ${node} | ${bd_index} | ${settings} | | ${vat_data}= | VPP get bridge domain data | ${node} @@ -278,7 +278,7 @@ | | ... | ${settings['split-horizon-group']} | | ... | ${settings['bridged-virtual-interface']} -| Bridge domain configuration in interface operational data should be empty +| Bridge domain Operational Interface Assignment should be empty | | [Documentation] | Get interface operational data and retrieve bridge | | ... | domain configuration from it. It should be empty. | | ... @@ -288,7 +288,7 @@ | | ... | will be checked.Type: string | | ... | | ... | *Example:* -| | ... | \| Bridge domain configuration in interface operational data should \ +| | ... | \| Bridge domain Operational Interface Assignment should \ | | ... | be empty \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| | | ... | | [Arguments] | ${node} | ${interface} @@ -297,7 +297,7 @@ | | ... | ${node} | ${interface} | | Should be empty | ${if_data} -| Bridge domain configuration in interface operational data should be +| Bridge domain Operational Interface Assignment should be | | [Documentation] | Get interface operational data and retrieve bridge | | ... | domain configuration from it. Compare the data to the expected one. | | ... @@ -308,7 +308,7 @@ | | ... | - bd_settings - The referential bridge domain data. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Bridge domain configuration in interface operational data should \ +| | ... | \| Bridge domain Operational Interface Assignment should \ | | ... | be \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| ${if_bd_settings} \| | | ... | | [Arguments] | ${node} | ${interface} | ${bd_settings} diff --git a/resources/libraries/robot/honeycomb/dhcp.robot b/resources/libraries/robot/honeycomb/dhcp.robot index d3fe942668..966c73f85c 100644 --- a/resources/libraries/robot/honeycomb/dhcp.robot +++ b/resources/libraries/robot/honeycomb/dhcp.robot @@ -17,7 +17,7 @@ | Documentation | Keywords used to test Honeycomb DHCP features. *** Keywords *** -| DHCP relay configuration from Honeycomb should be empty +| DHCP relay Operational Data From Honeycomb Should Be empty | | [Documentation] | Uses Honeycomb API to retrieve DHCP relay configuration\ | | ... | and expects to fail. | | ... @@ -26,7 +26,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| DHCP relay configuration from Honeycomb should be empty \ +| | ... | \| DHCP relay Operational Data From Honeycomb Should Be empty \ | | ... | \| ${nodes['DUT1']} \| | | [Arguments] | ${node} | | Run keyword and expect error | *Status code: 404* diff --git a/resources/libraries/robot/honeycomb/honeycomb.robot b/resources/libraries/robot/honeycomb/honeycomb.robot index 27aa078ef9..7813ee26bf 100644 --- a/resources/libraries/robot/honeycomb/honeycomb.robot +++ b/resources/libraries/robot/honeycomb/honeycomb.robot @@ -85,9 +85,9 @@ | | ... | \| Restart Honeycomb and VPP and clear persisted configuration \ | | ... | \| ${nodes['DUT1']} \| | | [Arguments] | ${node} -| | Log | Performing clean restart of Honeycomb and VPP. | console=True | | Stop Honeycomb service on DUTs | ${node} | | Clear persisted Honeycomb configuration | ${node} +| | Log | Persistence files cleared. | console=True | | Setup DUT | ${node} | | Setup Honeycomb service on DUTs | ${node} @@ -101,7 +101,6 @@ | | ... | | ... | \| Restart Honeycomb and VPP \| ${nodes['DUT1']} \| | | [Arguments] | ${node} -| | Log | Performing clean restart of Honeycomb and VPP. | console=True | | Restart Honeycomb and VPP on DUTs | ${node} | | Wait until keyword succeeds | 4min | 16sec | | ... | Check honeycomb startup state | ${node} diff --git a/resources/libraries/robot/honeycomb/interfaces.robot b/resources/libraries/robot/honeycomb/interfaces.robot index a08ce3fceb..2ab97e0d96 100644 --- a/resources/libraries/robot/honeycomb/interfaces.robot +++ b/resources/libraries/robot/honeycomb/interfaces.robot @@ -544,7 +544,7 @@ | | | interfaceAPI.Configure interface ethernet | | | ... | ${node} | ${interface} | ${key} | ${ethernet['${key}']} -| Interface ethernet configuration from Honeycomb should be +| Interface ethernet Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves interface ethernet configuration\ | | ... | through Honeycomb and compares with settings supplied in arguments. | | ... @@ -555,7 +555,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Interface ethernet configuration from Honeycomb should be \ +| | ... | \| Interface ethernet Operational Data From Honeycomb Should Be \ | | ... | should be \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \ | | ... | \| ${{'mtu': 1500}} \| | | [Arguments] | ${node} | ${interface} | ${ethernet} @@ -564,7 +564,7 @@ | | | Should be equal | | | ... | ${api_data['v3po:ethernet']['${key}']} | ${ethernet['${key}']} -| Interface ethernet configuration from VAT should be +| Interface ethernet Operational Data From VAT Should Be | | [Documentation] | Retrieves interface ethernet configuration\ | | ... | through VAT and compares with settings supplied in arguments. | | ... @@ -575,7 +575,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Interface ethernet configuration from VAT should be \ +| | ... | \| Interface ethernet Operational Data From VAT Should Be \ | | ... | should be \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| ${1500} \| | | [Arguments] | ${node} | ${interface} | ${mtu} | | ${vat_data}= | InterfaceCLI.VPP get interface data | ${node} | ${interface} @@ -636,7 +636,7 @@ | | ... | ${node} | ${interface} | | Should be equal | ${vat_data} | ${vrf_id} -| Interface configuration from Honeycomb should be empty +| Interface Operational Data From Honeycomb Should Be empty | | [Documentation] | Attempts to retrieve interface configuration through\ | | ... | Honeycomb and expects to get empty dictionary. | | ... @@ -646,14 +646,14 @@ | | ... | string | | ... | | ... | *Example:* -| | ... | \| Interface configuration from Honeycomb should be empty\ +| | ... | \| Interface Operational Data From Honeycomb Should Be empty\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| | | ... | | [Arguments] | ${node} | ${interface} | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface} | | Should be empty | ${api_data} -| Interface configuration from VAT should be empty +| Interface Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve Interface configuration through\ | | ... | VAT and expects to get empty dictionary. | | ... @@ -663,7 +663,7 @@ | | ... | string | | ... | | ... | *Example:* -| | ... | \| Interface configuration from VAT should be empty\ +| | ... | \| Interface Operational Data From VAT Should Be empty\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| | | ... | | [Arguments] | ${node} | ${interface} | diff --git a/resources/libraries/robot/honeycomb/nat.robot b/resources/libraries/robot/honeycomb/nat.robot index 17cda4763e..81bffe66d7 100644 --- a/resources/libraries/robot/honeycomb/nat.robot +++ b/resources/libraries/robot/honeycomb/nat.robot @@ -18,7 +18,7 @@ | Documentation | Keywords used to test Honeycomb NAT node. *** Keywords *** -| NAT configuration from Honeycomb should be empty +| NAT Operational Data From Honeycomb Should Be empty | | [Documentation] | Uses Honeycomb API to retrieve NAT operational data\ | | ... | and expects to find only default values. | | ... @@ -28,7 +28,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| NAT configuration from Honeycomb should be empty \ +| | ... | \| NAT Operational Data From Honeycomb Should Be empty \ | | ... | \| ${nodes['DUT1']} \| ${default_settings} \| | | [Arguments] | ${node} | ${default_settings} | | ${data}= | Get NAT Oper data | ${node} @@ -120,7 +120,7 @@ | | Configure NAT on interface | | ... | ${node} | ${interface} | ${direction} | ${True} -| NAT interface configuration from Honeycomb should be +| NAT interface Operational Data From Honeycomb Should Be | | [Documentation] | Uses Honeycomb API to retrieve interface operational data\ | | ... | and compares the NAT section against expected settings. | | ... @@ -132,13 +132,13 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| NAT interface configuration from Honeycomb should be \ +| | ... | \| NAT interface Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| outbound \| | | [Arguments] | ${node} | ${interface} | ${direction} | | ${data}= | Get interface oper data | ${node} | ${interface} | | Variable should exist | ${data['interface-nat:nat']['${direction}']} -| NAT interface configuration from Honeycomb should be empty +| NAT interface Operational Data From Honeycomb Should Be empty | | [Documentation] | Uses Honeycomb API to retrieve interface operational data\ | | ... | and expects to find no data for the given direction. | | ... @@ -150,13 +150,13 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| NAT interface configuration from Honeycomb should be empty \ +| | ... | \| NAT interface Operational Data From Honeycomb Should Be empty \ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| outbound \| | | [Arguments] | ${node} | ${interface} | ${direction} | | ${data}= | Get interface oper data | ${node} | ${interface} | | Variable should not exist | ${data['interface-nat:nat']['${direction}']} -| NAT interface configuration from VAT should be +| NAT interface Operational Data From VAT Should Be | | [Documentation] | Uses Honeycomb API to retrieve NAT configured interfaces\ | | ... | and compares with expected settings. | | ... @@ -167,7 +167,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| NAT interface configuration from VAT should be \ +| | ... | \| NAT interface Operational Data From VAT Should Be \ | | ... | \| ${nodes['DUT1']} \| ${settings} \| | | [Arguments] | ${node} | ${settings} | | ${data}= | VPP get NAT interfaces | ${node} diff --git a/resources/libraries/robot/honeycomb/nsh.robot b/resources/libraries/robot/honeycomb/nsh.robot index f2a8ffdf8d..434c72f516 100644 --- a/resources/libraries/robot/honeycomb/nsh.robot +++ b/resources/libraries/robot/honeycomb/nsh.robot @@ -19,7 +19,7 @@ | Documentation | Keywords used to test Honeycomb NSH node. *** Keywords *** -| NSH configuration from Honeycomb should be empty +| NSH Operational Data From Honeycomb Should Be empty | | [Documentation] | Uses Honeycomb API to retrieve NSH configuration\ | | ... | and expects to fail. | | ... @@ -28,7 +28,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| NSH configuration from Honeycomb should be empty \ +| | ... | \| NSH Operational Data From Honeycomb Should Be empty \ | | ... | \| ${nodes['DUT1']} \| | | [Arguments] | ${node} | | Run keyword and expect error | *Status code: 404* 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 diff --git a/resources/libraries/robot/honeycomb/policer.robot b/resources/libraries/robot/honeycomb/policer.robot index 65ef319d43..965b0f3cb5 100644 --- a/resources/libraries/robot/honeycomb/policer.robot +++ b/resources/libraries/robot/honeycomb/policer.robot @@ -36,7 +36,7 @@ | | Configure Policer | | ... | ${node} | ${policer_data['name']} | ${policer_data} -| Policer configuration from Honeycomb should be +| Policer Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves Policer operational data and verifies if\ | | ... | Policer is configured correctly. | | ... @@ -47,14 +47,14 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Policer configuration from Honeycomb should be \ +| | ... | \| Policer Operational Data From Honeycomb Should Be \ | | ... | \| ${node} \| ${policer_data} \| | | ... | | [Arguments] | ${node} | ${policer_data} | | ${data}= | Get Policer oper data | ${node} | ${policer_data['name']} | | Compare data structures | ${data[0]} | ${policer_data} -| Policer configuration from Honeycomb should be empty +| Policer Operational Data From Honeycomb Should Be empty | | [Documentation] | Checks whether Policer configuration from Honeycomb \ | | ... | is empty. | | ... @@ -63,7 +63,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Policer configuration from Honeycomb should be empty \ +| | ... | \| Policer Operational Data From Honeycomb Should Be empty \ | | ... | \| ${node} \| | | ... | | [Arguments] | ${node} diff --git a/resources/libraries/robot/honeycomb/port_mirroring.robot b/resources/libraries/robot/honeycomb/port_mirroring.robot index 81eedb944e..ef41c51fd3 100644 --- a/resources/libraries/robot/honeycomb/port_mirroring.robot +++ b/resources/libraries/robot/honeycomb/port_mirroring.robot @@ -42,7 +42,7 @@ | | InterfaceAPI.Configure interface SPAN | | ... | ${node} | ${dst_interface} | ${src_interfaces} -| Interface SPAN configuration from Honeycomb should be +| Interface SPAN Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves interface operational data and verifies that\ | | ... | SPAN mirroring is configured with the provided interfaces. | | ... @@ -54,7 +54,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Interface SPAN configuration from Honeycomb should be \ +| | ... | \| Interface SPAN Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| GigabitEthernet0/9/0 \| | | ... | | [Arguments] | ${node} | ${dst_interface} | @{src_interfaces} @@ -65,7 +65,7 @@ | | Sort list | ${src_interfaces} | | Lists should be equal | ${data} | ${src_interfaces} -| Interface SPAN configuration from Honeycomb should be empty +| Interface SPAN Operational Data From Honeycomb Should Be empty | | [Documentation] | Checks whether SPAN configuration from Honeycomb is empty. | | ... | | ... | *Arguments:* @@ -74,7 +74,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Interface SPAN configuration from Honeycomb should be empty \ +| | ... | \| Interface SPAN Operational Data From Honeycomb Should Be empty \ | | ... | \| ${node} \| GigabitEthernetO/8/0 \| | | ... | | [Arguments] | ${node} | ${dst_interface} @@ -82,7 +82,7 @@ | | Variable should not exist | | ... | ${data['v3po:span']['mirrored-interfaces']['mirrored-interface']} -| Interface SPAN configuration from VAT should be +| Interface SPAN Operational Data From VAT Should Be | | [Documentation] | Retrieves SPAN configuration from VAT dump and verifies\ | | ... | that SPAN mirroring is configured with the provided interfaces. | | ... @@ -94,7 +94,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| Interface SPAN configuration from VAT should be \ +| | ... | \| Interface SPAN Operational Data From VAT Should Be \ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| GigabitEthernet0/9/0 \| | | ... | | [Arguments] | ${node} | ${dst_interface} | @{src_interfaces} diff --git a/resources/libraries/robot/honeycomb/slaac.robot b/resources/libraries/robot/honeycomb/slaac.robot index 87abf3c34f..10e4887dca 100644 --- a/resources/libraries/robot/honeycomb/slaac.robot +++ b/resources/libraries/robot/honeycomb/slaac.robot @@ -35,7 +35,7 @@ | | Configure interface SLAAC | | ... | ${node} | ${interface} | ${slaac_data} -| SLAAC configuration from Honeycomb should be +| SLAAC Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves SLAAC operational data and verifies that\ | | ... | SLAAC is configured with the provided interfaces. | | ... @@ -47,14 +47,14 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| SLAAC configuration from Honeycomb should be \ +| | ... | \| SLAAC Operational Data From Honeycomb Should Be \ | | ... | \| ${node} \| ${interface} \| ${slaac_data} \| | | ... | | [Arguments] | ${node} | ${interface} | ${slaac_data} | | ${data}= | Get interface SLAAC oper data | ${node} | ${interface} | | Dictionaries should be equal | ${data} | ${slaac_data} -| SLAAC configuration from Honeycomb should be empty +| SLAAC Operational Data From Honeycomb Should Be empty | | [Documentation] | Checks whether SLAAC configuration from Honeycomb \ | | ... | is empty. | | ... @@ -64,7 +64,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| SLAAC configuration from Honeycomb should be empty \ +| | ... | \| SLAAC Operational Data From Honeycomb Should Be empty \ | | ... | \| ${node} \| ${interface} \| | | ... | | [Arguments] | ${node} | ${interface} diff --git a/resources/libraries/robot/honeycomb/sub_interface.robot b/resources/libraries/robot/honeycomb/sub_interface.robot index 5a42b56d11..1b1b80049b 100644 --- a/resources/libraries/robot/honeycomb/sub_interface.robot +++ b/resources/libraries/robot/honeycomb/sub_interface.robot @@ -46,7 +46,7 @@ | | interfaceAPI.Create sub interface | ${node} | ${super_interface} | | ... | ${match} | ${tags} | &{sub_interface_settings} -| Sub-interface configuration from Honeycomb should be +| Sub-interface Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves sub-interface configuration through Honeycomb\ | | ... | and compares it with settings supplied in argument. | | ... @@ -58,7 +58,7 @@ | | ... | Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Sub-interface configuration from Honeycomb should be\ +| | ... | \| Sub-interface Operational Data From Honeycomb Should Be\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1\ | | ... | \| ${sub_if_1_params} \| | | ... @@ -69,7 +69,7 @@ | | ... | ${node} | ${super_interface} | ${identifier} | | interfaceAPI.Compare Data Structures | ${api_data} | ${sub_if_settings} -| Sub-interface configuration from Honeycomb should be empty +| Sub-interface Operational Data From Honeycomb Should Be empty | | [Documentation] | Retrieves sub-interface configuration through Honeycomb \ | | ... | and expects no data. | | ... @@ -79,7 +79,7 @@ | | ... | - identifier - Sub-interface ID. Type: integer or string | | ... | | ... | *Example:* -| | ... | \| Sub-interface configuration from Honeycomb should be empty\ +| | ... | \| Sub-interface Operational Data From Honeycomb Should Be empty\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1 \| | | ... | | [Arguments] | ${node} | ${super_interface} | ${identifier} @@ -112,7 +112,7 @@ | | Should be equal | ${api_data['admin-status']} | ${admin_state} | | Should be equal | ${api_data['oper-status']} | ${oper_state} -| Sub-interface configuration from VAT should be +| Sub-interface Operational Data From VAT Should Be | | [Documentation] | Retrieves sub-interface configuration through VAT and\ | | ... | compares it with settings supplied in argument. | | ... @@ -124,7 +124,7 @@ | | ... | sub-interface to be checked. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Sub-interface configuration from VAT should be\ +| | ... | \| Sub-interface Operational Data From VAT Should Be\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0.1 \| ${sub_if_1_params} \| | | ... | | [Arguments] | ${node} | ${sub_interface} | ${sub_interface_settings} @@ -268,7 +268,7 @@ | | interfaceAPI.Add bridge domain to sub interface | | ... | ${node} | ${super_if} | ${identifier} | ${sub_bd_setings} -| Sub-interface bridge domain configuration from Honeycomb should be +| Sub-interface bridge domain Operational Data From Honeycomb Should Be | | [Documentation] | Uses Honeycomb API to verify sub-interface assignment to\ | | ... | a bridge domain. | | ... @@ -279,7 +279,7 @@ | | ... | - settings - Bridge domain parameters to be checked. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Sub-interface bridge domain configuration from Honeycomb should be\ +| | ... | \| Sub-interface bridge domain Operational Data From Honeycomb Should Be\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0 \| 1 \| ${bd_settings} \| | | ... | | [Arguments] | ${node} | ${super_if} | ${identifier} | ${settings} @@ -289,7 +289,7 @@ | | Should be equal | ${if_data['bridge-domain']} | | ... | ${settings['bridge-domain']} -| Sub-interface bridge domain configuration from VAT should be +| Sub-interface bridge domain Operational Data From VAT Should Be | | [Documentation] | Uses VAT to verify sub-interface assignment to a bridge\ | | ... | domain. | | ... @@ -300,7 +300,7 @@ | | ... | - setings - Parameters to be checked. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Sub-interface bridge domain configuration from VAT should be\ +| | ... | \| Sub-interface bridge domain Operational Data From VAT Should Be\ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0.1 \| ${sub_bd_setings} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} diff --git a/resources/libraries/robot/honeycomb/tap.robot b/resources/libraries/robot/honeycomb/tap.robot index 2fffffa067..1a045d1909 100644 --- a/resources/libraries/robot/honeycomb/tap.robot +++ b/resources/libraries/robot/honeycomb/tap.robot @@ -67,7 +67,7 @@ | | [Arguments] | ${node} | ${interface} | | interfaceAPI.Delete interface | ${node} | ${interface} -| TAP configuration from Honeycomb should be +| TAP Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves interface TAP configuration through Honeycomb\ | | ... | and compares with settings supplied in argument. | | ... @@ -78,7 +78,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| TAP configuration from Honeycomb should be \ +| | ... | \| TAP Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| tap_int1 \| ${{'tap-name':'tap1',\ | | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| | | ... @@ -89,7 +89,7 @@ | | ${api_mac}= | Set Variable | ${api_data['phys-address']} | | Should be equal | ${api_mac} | ${settings['mac']} -| TAP configuration from VAT should be +| TAP Operational Data From VAT Should Be | | [Documentation] | Retrieves interface TAP configuration through VAT and\ | | ... | compares with settings supplied in argument. | | ... @@ -99,7 +99,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| TAP configuration from Honeycomb should be \ +| | ... | \| TAP Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| ${{'tap-name':'tap1',\ | | ... | 'mac':'08:00:27:60:26:ab', 'device-instance':3}} \| | | ... @@ -108,7 +108,7 @@ | | Should be equal | ${vat_data['dev_name']} | ${settings['tap-name']} # other settings not accessible through VAT commands -| TAP configuration from Honeycomb should be empty +| TAP Operational Data From Honeycomb Should Be empty | | [Documentation] | Attempts to retrieve interface TAP configuration\ | | ... | through Honeycomb and expects to recieve an empty dictionary. | | ... @@ -118,7 +118,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| TAP configuration from Honeycomb should be empty\ +| | ... | \| TAP Operational Data From Honeycomb Should Be empty\ | | ... | \| ${nodes['DUT1']} \| tap_int1 \| | | ... | | [Arguments] | ${node} | ${interface} @@ -126,7 +126,7 @@ | | Run keyword and expect error | *KeyError: 'v3po:tap' | Set Variable | | ... | ${api_data['v3po:tap']} -| TAP configuration from VAT should be empty +| TAP Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve interface TAP configuration\ | | ... | through VAT and expects a "no data" error. | | ... @@ -136,7 +136,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| TAP configuration from VAT should be empty\ +| | ... | \| TAP Operational Data From VAT Should Be empty\ | | ... | \| ${nodes['DUT1']} \| tap_int1 \| | | ... | | [Arguments] | ${node} | ${interface} diff --git a/resources/libraries/robot/honeycomb/vhost_user.robot b/resources/libraries/robot/honeycomb/vhost_user.robot index 89f6ddf09f..b0941ed1d3 100644 --- a/resources/libraries/robot/honeycomb/vhost_user.robot +++ b/resources/libraries/robot/honeycomb/vhost_user.robot @@ -67,7 +67,7 @@ | | interfaceAPI.Configure interface vhost user | ${node} | ${interface} | | ... | &{settings} -| Vhost-user configuration from Honeycomb should be +| Vhost-user Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves interface vhost-user configuration through\ | | ... | Honeycomb and compares it with settings supplied in argument. | | ... @@ -78,7 +78,7 @@ | | ... | Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Vhost-user configuration from Honeycomb should be\ +| | ... | \| Vhost-user Operational Data From Honeycomb Should Be\ | | ... | \| ${nodes['DUT1']} \| vhost_test \| ${vhost_user_settings} \| | | ... | | [Arguments] | ${node} | ${interface} | ${settings} @@ -87,7 +87,7 @@ | | :FOR | ${key} | IN | @{settings.keys()} | | | Should be equal | ${api_vhost['${key}']} | ${settings['${key}']} -| Vhost-user configuration from VAT should be +| Vhost-user Operational Data From VAT Should Be | | [Documentation] | Retrieves interface vhost-user configuration through VAT\ | | ... | and compares it with settings supplied in argument. | | ... @@ -97,7 +97,7 @@ | | ... | Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Vhost-user configuration from VAT should be\ +| | ... | \| Vhost-user Operational Data From VAT Should Be\ | | ... | \| ${nodes['DUT1']} \| vhost_test \| | | ... | | ... | *Note:* @@ -113,7 +113,7 @@ | | should be equal as strings | ${vat_data['is_server']} | | ... | ${translate['${settings['role']}']} -| Vhost-user configuration from Honeycomb should be empty +| Vhost-user Operational Data From Honeycomb Should Be empty | | [Documentation] | Attempts to retrieve interface vhost-user configuration\ | | ... | through Honeycomb and expects to recieve an empty dictionary. | | ... @@ -122,7 +122,7 @@ | | ... | - interface - name of an interface on the specified node. Type: string | | ... | | ... | *Example:* -| | ... | \| Vhost-user configuration from Honeycomb should be empty\ +| | ... | \| Vhost-user Operational Data From Honeycomb Should Be empty\ | | ... | \| ${nodes['DUT1']} \| vhost_test \| | | ... | | [Arguments] | ${node} | ${interface} @@ -130,7 +130,7 @@ | | Run keyword and expect error | *KeyError: 'v3po:vhost-user' | | ... | Should be empty | ${api_data['v3po:vhost-user']} -| Vhost-user configuration from VAT should be empty +| Vhost-user Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve interface vhost-user configuration\ | | ... | through VAT and expects a "no data" error. | | ... @@ -138,7 +138,7 @@ | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| Vhost-user configuration from VAT should be empty\ +| | ... | \| Vhost-user Operational Data From VAT Should Be empty\ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} diff --git a/resources/libraries/robot/honeycomb/vxlan.robot b/resources/libraries/robot/honeycomb/vxlan.robot index 07c5495ec7..b3bf083587 100644 --- a/resources/libraries/robot/honeycomb/vxlan.robot +++ b/resources/libraries/robot/honeycomb/vxlan.robot @@ -49,7 +49,7 @@ | | [Arguments] | ${node} | ${interface} | | interfaceAPI.Delete interface | ${node} | ${interface} -| VxLAN configuration from Honeycomb should be +| VxLAN Operational Data From Honeycomb Should Be | | [Documentation] | Retrieves interface VxLAN configuration through Honeycomb\ | | ... | and compares with settings supplied in argument. | | ... @@ -60,7 +60,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| VxLAN configuration from Honeycomb should be \ +| | ... | \| VxLAN Operational Data From Honeycomb Should Be \ | | ... | \|${nodes['DUT1']} \| vxlan_01 \| ${{'src':'192.168.0.2',\ | | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \| | | ... @@ -70,7 +70,7 @@ | | :FOR | ${key} | IN | @{settings.keys()} | | | Should be equal | ${api_vxlan['${key}']} | ${settings['${key}']} -| VxLAN configuration from VAT should be +| VxLAN Operational Data From VAT Should Be | | [Documentation] | Retrieves interface VxLAN configuration through VAT and\ | | ... | compares with settings supplied in argument. | | ... @@ -80,7 +80,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| VxLAN configuration from Honeycomb should be \ +| | ... | \| VxLAN Operational Data From Honeycomb Should Be \ | | ... | \|${nodes['DUT1']} \| ${{'src':'192.168.0.2',\ | | ... | 'dst':'192.168.0.3', 'vni':5, 'encap-vrf-id':0}} \| | | ... @@ -97,7 +97,7 @@ | | Should be equal | | ... | ${vat_data['encap_vrf_id']} | ${settings['encap-vrf-id']} -| VxLAN configuration from Honeycomb should be empty +| VxLAN Operational Data From Honeycomb Should Be empty | | [Documentation] | Attempts to retrieve interface VxLAN configuration\ | | ... | through Honeycomb and expects to recieve an empty dictionary. | | ... @@ -107,7 +107,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| VxLAN configuration from Honeycomb should be empty\ +| | ... | \| VxLAN Operational Data From Honeycomb Should Be empty\ | | ... | \|${nodes['DUT1']} \| vxlan_01 \| | | ... | | [Arguments] | ${node} | ${interface} @@ -115,7 +115,7 @@ | | Run keyword and expect error | *KeyError: 'v3po:vxlan' | Set Variable | | ... | ${api_data['v3po:vxlan']} -| VxLAN configuration from VAT should be empty +| VxLAN Operational Data From VAT Should Be empty | | [Documentation] | Attempts to retrieve interface VxLAN configuration\ | | ... | through VAT and expects a "no data" error. | | ... @@ -125,7 +125,7 @@ | | ... | | ... | *Example:* | | ... -| | ... | \| VxLAN configuration from VAT should be empty\ +| | ... | \| VxLAN Operational Data From VAT Should Be empty\ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} diff --git a/resources/libraries/robot/honeycomb/vxlan_gpe.robot b/resources/libraries/robot/honeycomb/vxlan_gpe.robot index 14a4910bb6..6384061edd 100644 --- a/resources/libraries/robot/honeycomb/vxlan_gpe.robot +++ b/resources/libraries/robot/honeycomb/vxlan_gpe.robot @@ -66,7 +66,7 @@ | | ... | | interfaceAPI.Delete interface | ${node} | ${interface} -| VxLAN GPE configuration from Honeycomb should be +| VxLAN GPE Operational Data From Honeycomb Should Be | | [Documentation] | Uses Honeycomb API to get operational data about the\ | | ... | given interface and compares them to the values provided as arguments. | | ... @@ -78,7 +78,7 @@ | | ... | - vxlan_gpe_settings - VxLAN GPE specific parameters. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| VxLAN GPE configuration from Honeycomb should be \ +| | ... | \| VxLAN GPE Operational Data From Honeycomb Should Be \ | | ... | \| ${nodes['DUT1']} \| vxlan_gpe_tunnel0 \| ${base_params} \ | | ... | \| ${vxlan_gpe_params} \| | | ... @@ -101,7 +101,7 @@ | | ... | AND | | ... | Should be equal as strings | ${api_data['oper-status']} | down -| VxLAN GPE configuration from VAT should be +| VxLAN GPE Operational Data From VAT Should Be | | [Documentation] | Uses VAT to get operational data about the given\ | | ... | interface and compares them to the values provided as arguments. | | ... @@ -111,7 +111,7 @@ | | ... | - vxlan_gpe_settings - VxLAN GPE specific parameters. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| VxLAN GPE configuration from VAT should be \ +| | ... | \| VxLAN GPE Operational Data From VAT Should Be \ | | ... | \| ${nodes['DUT1']} \| vxlan_gpe_tunnel0 \| ${vxlan_gpe_params} \| | | ... | | [Arguments] | ${node} | ${interface} | ${vxlan_gpe_params} @@ -154,7 +154,7 @@ | | Should be equal as strings | | ... | ${api_data['if-index']} | ${sw_if_index} -| VxLAN GPE configuration from Honeycomb should be empty +| VxLAN GPE Operational Data From Honeycomb Should Be empty | | [Documentation] | Uses Honeycomb API to get operational data about\ | | ... | the given interface and expects to fail. | | ... @@ -162,7 +162,7 @@ | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| VxLAN GPE configuration from Honeycomb should be empty\ +| | ... | \| VxLAN GPE Operational Data From Honeycomb Should Be empty\ | | ... | \| ${nodes['DUT1']} \| vxlan_gpe_tunnel0 \| | | ... | | [Arguments] | ${node} | ${interface} @@ -170,7 +170,7 @@ | | ${api_data}= | interfaceAPI.Get interface oper data | ${node} | ${interface} | | Should be empty | ${api_data} -| VxLAN GPE configuration from VAT should be empty +| VxLAN GPE Operational Data From VAT Should Be empty | | [Documentation] | Uses VAT to get operational data about the given\ | | ... | interface and expects an empty dictionary. | | ... @@ -178,7 +178,7 @@ | | ... | - node - information about a DUT node. Type: dictionary | | ... | | ... | *Example:* -| | ... | \| VxLAN GPE configuration from VAT should be empty\ +| | ... | \| VxLAN GPE Operational Data From VAT Should Be empty\ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} diff --git a/resources/test_data/honeycomb/interface_ip.py b/resources/test_data/honeycomb/interface_ip.py new file mode 100644 index 0000000000..392623b5e8 --- /dev/null +++ b/resources/test_data/honeycomb/interface_ip.py @@ -0,0 +1,34 @@ +# Copyright (c) 2016 Cisco and/or its affiliates. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at: +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Test variables for Basic interface management and IP addresses.""" + +# Configuration which will be set and verified during tests. +ipv4_address = "192.168.0.2" +ipv4_address2 = "192.168.1.2" +ipv4_prefix = 24 +ipv4_mask = "255.255.255.0" +ipv4_neighbor = "192.168.0.4" +ipv4_neighbor2 = "192.168.1.4" +ipv4_settings = {"mtu": 9000} +ipv6_address = "10::10" +ipv6_address2 = "11::10" +ipv6_prefix = 64 +ipv6_neighbor = "10::11" +ipv6_neighbor2 = "11::11" +neighbor_mac = "08:00:27:c0:5d:37" +neighbor_mac2 = "08:00:27:c0:5d:37" +ipv6_settings = {"enabled": True, "forwarding": True, "mtu": 9000, + "dup-addr-detect-transmits": 5} +ethernet = {"mtu": 9000} +routing = {"vrf-id": 27} diff --git a/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot index 1dac59839b..7792fb3fdd 100644 --- a/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-acl-apihc-apivat-func.robot @@ -22,7 +22,7 @@ | Variables | resources/test_data/honeycomb/acl.py | Suite Teardown | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb access control lists test suite.* -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb can create ACL classify table diff --git a/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot index 4405da11e6..ba39c02402 100644 --- a/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-dhcp-apihc-apivat-func.robot @@ -27,7 +27,7 @@ | Documentation | *Honeycomb DHCP relay test suite.* | Test Setup | Clear Packet Trace on All DUTs | ${nodes} | Suite Teardown | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb can configure DHCP relay entry @@ -40,7 +40,7 @@ | | ... | on the second TG interface and verify required fields. | | [Teardown] | Run Keywords | Show Packet Trace on All DUTs | ${nodes} | | ... | AND | Log DHCP relay configuration from VAT | ${node} | ipv4 -| | Given DHCP relay configuration from Honeycomb should be empty | ${node} +| | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures DHCP relay | ${node} | ${relay1} | ipv4 | ${0} | | Then DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay1_oper} @@ -55,13 +55,13 @@ | | Given DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay1_oper} | | When Honeycomb clears DHCP relay configuration | ${node} -| | Then DHCP relay configuration from Honeycomb should be empty | ${node} +| | Then DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | TC03: Honeycomb can configure multiple DHCP relay servers. | | [Documentation] | Configure multiple DHCP relay servers and verify\ | | ... | their configuration using operational data. | | [Teardown] | Honeycomb clears DHCP relay configuration | ${node} -| | Given DHCP relay configuration from Honeycomb should be empty | ${node} +| | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | And Honeycomb configures DHCP relay | ${node} | ${relay2} | ipv4 | ${0} | | Then DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay2_oper} @@ -77,7 +77,7 @@ | | [Teardown] | Run Keywords | Show Packet Trace on All DUTs | ${nodes} | | ... | AND | Log DHCP relay configuration from VAT | ${node} | ipv6 | | ... | AND | Honeycomb clears DHCP relay configuration | ${node} -| | Given DHCP relay configuration from Honeycomb should be empty | ${node} +| | Given DHCP relay Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures DHCP relay | ${node} | ${relay_v6} | ipv6 | ${0} | | Then DHCP relay configuration from Honeycomb should contain | | ... | ${node} | ${relay_v6_oper} diff --git a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot index 8f5796a299..4fe9dde40c 100644 --- a/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-int-apihcnc-func.robot @@ -21,7 +21,7 @@ | Variables | resources/test_data/honeycomb/netconf/triggers.py | Documentation | *Netconf test suite. Contains test cases that need to bypass\ | ... | REST API.* -| Force Tags | honeycomb_sanity +| Force Tags | HC_FUNC | HC_REST_ONLY | Suite Teardown | ... | Restart Honeycomb and VPP | ${node} diff --git a/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot index ca1ff9988c..9fb858ad25 100644 --- a/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-int-subint-apihc-apivat-func.robot @@ -20,7 +20,7 @@ | Variables | resources/test_data/honeycomb/sub_interfaces.py | Suite Teardown | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb sub-interface management test suite.* *** Variables *** @@ -36,15 +36,15 @@ | | [Documentation] | Check if Honeycomb creates a sub-interface. | | ... | | Given Honeycomb sets interface state | ${node} | ${super_if} | down -| | And sub-interface configuration from Honeycomb should be empty +| | And sub-interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${super_if} | ${sub_if_id} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${sub_if_name} | | When Honeycomb creates sub-interface | ${node} | ${super_if} | | ... | ${sub_if_1_match} | ${sub_if_1_tags} | ${sub_if_1_settings} -| | Then Sub-interface configuration from Honeycomb should be +| | Then Sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper} -| | And Sub-interface configuration from VAT should be +| | And Sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | | And sub-interface indices from Honeycomb and VAT should correspond | | ... | ${node} | ${super_if} | ${sub_if_id} @@ -157,15 +157,15 @@ | | [Setup] | Set super and sub interfaces down | | ... | ${node} | ${super_if} | ${sub_if_id} | | ... -| | Given sub-interface configuration from Honeycomb should be +| | Given sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper} -| | And sub-interface configuration from VAT should be +| | And sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | | When Honeycomb fails to remove all sub-interfaces | | ... | ${node} | ${super_if} -| | Then sub-interface configuration from Honeycomb should be +| | Then sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper} -| | And sub-interface configuration from VAT should be +| | And sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | TC07: Honeycomb adds sub-interface to new bridge domain @@ -174,21 +174,21 @@ | | [Setup] | Set super and sub interfaces down | | ... | ${node} | ${super_if} | ${sub_if_id} | | ... -| | Given sub-interface configuration from Honeycomb should be +| | Given sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_if_1_oper} -| | And sub-interface configuration from VAT should be +| | And sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | | When Honeycomb creates first L2 bridge domain | | ... | ${node} | ${bd_name} | ${bd_settings} -| | Then bridge domain configuration from Honeycomb should be +| | Then bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd_name} | ${bd_settings} | | When Honeycomb adds sub-interface to bridge domain | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_bd_settings} -| | Then sub-interface bridge domain configuration from Honeycomb should be +| | Then sub-interface bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if} | ${sub_if_id} | ${sub_bd_settings} -| | And sub-interface bridge domain configuration from VAT should be +| | And sub-interface bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_bd_settings} -| | And sub-interface configuration from VAT should be +| | And sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if_name} | ${sub_if_1_oper} | TC08: Honeycomb enables tag-rewrite pop 1 @@ -387,15 +387,15 @@ | | [Documentation] | Check if Honeycomb can modify a sub-interface with exact\ | | ... | tag match. | | Given Honeycomb sets interface state | ${node} | ${super_if2} | down -| | And sub-interface configuration from Honeycomb should be empty +| | And sub-interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${super_if2} | ${sub_if_id} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${sub_if2_name} | | When Honeycomb creates sub-interface | ${node} | ${super_if2} | | ... | ${sub_if_2_match} | ${sub_if_2_tags} | ${sub_if_2_settings} -| | Then Sub-interface configuration from Honeycomb should be +| | Then Sub-interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${super_if2} | ${sub_if_id} | ${sub_if_2_oper} -| | And Sub-interface configuration from VAT should be +| | And Sub-interface Operational Data From VAT Should Be | | ... | ${node} | ${sub_if2_name} | ${sub_if_2_oper} | | And sub-interface indices from Honeycomb and VAT should correspond | | ... | ${node} | ${super_if2} | ${sub_if_id} diff --git a/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot index 1a8d4008b3..1d2b4ae7de 100644 --- a/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot @@ -14,24 +14,6 @@ *** Variables *** # Interface to run tests on. | ${interface}= | ${node['interfaces']['port1']['name']} -# Configuration which will be set and verified during tests. -| @{ipv4_address}= | 192.168.0.2 | ${24} -| @{ipv4_address2}= | 192.168.1.2 | ${24} -| ${ipv4_mask}= | 255.255.255.0 -| ${ipv4_prefix}= | ${24} -| @{ipv4_neighbor}= | 192.168.0.4 | 08:00:27:c0:5d:37 -| @{ipv4_neighbor2}= | 192.168.1.4 | 08:00:27:c0:5d:37 -| &{ipv4_settings}= | mtu=${9000} -| @{ipv6_address}= | 10::10 | ${64} -| @{ipv6_address2}= | 11::10 | ${64} -| @{ipv6_neighbor}= | 10::11 | 08:00:27:c0:5d:37 -| @{ipv6_neighbor2}= | 11::11 | 08:00:27:c0:5d:37 -| &{ipv6_settings}= | enabled=${True} | forwarding=${True} | mtu=${9000} -| ... | dup-addr-detect-transmits=${5} -| &{ethernet}= | mtu=${9000} -| &{routing}= | vrf-id=${27} -| &{vxlan_settings}= | src=10.0.1.20 | dst=10.0.3.20 | vni=${1000} -| ... | encap-vrf-id=${1000} *** Settings *** | Resource | resources/libraries/robot/default.robot @@ -39,7 +21,8 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/testing_path.robot | Resource | resources/libraries/robot/ipv6.robot -| Force Tags | honeycomb_sanity | honeycomb_odl +| Variables | resources/test_data/honeycomb/interface_ip.py +| Force Tags | HC_FUNC | Suite Teardown | | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb interface management test suite.* @@ -66,19 +49,21 @@ | | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface} | | And ipv4 address from VAT should be empty | ${node} | ${interface} | | When Honeycomb sets interface ipv4 address | ${node} | ${interface} -| | ... | ${ipv4_address[0]} | ${ipv4_mask} +| | ... | ${ipv4_address} | ${ipv4_mask} | | Then IPv4 address from Honeycomb should be -| | ... | ${node} | ${interface} | ${ipv4_address[0]} | ${ipv4_prefix} +| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix} | | And IPv4 address from VAT should be -| | ... | ${node} | ${interface} | @{ipv4_address} | ${ipv4_mask} +| | ... | ${node} | ${interface} | ${ipv4_address} +| | ... | ${ipv4_prefix} | ${ipv4_mask} | TC03: Honeycomb removes IPv4 address from interface | | [Documentation] | Check if Honeycomb API can remove configured ipv4\ | | ... | addresses from interface. | | Given IPv4 address from Honeycomb should be -| | ... | ${node} | ${interface} | @{ipv4_address} +| | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix} | | And IPv4 address from VAT should be -| | ... | ${node} | ${interface} | @{ipv4_address} | ${ipv4_mask} +| | ... | ${node} | ${interface} | ${ipv4_address} +| | ... | ${ipv4_prefix} | ${ipv4_mask} | | When Honeycomb removes interface ipv4 addresses | ${node} | ${interface} | | Then IPv4 address from Honeycomb should be empty | ${node} | ${interface} | | And ipv4 address from VAT should be empty | ${node} | ${interface} @@ -91,11 +76,12 @@ | | Given IPv4 address from Honeycomb should be empty | ${node} | ${interface} | | And ipv4 address from VAT should be empty | ${node} | ${interface} | | When Honeycomb sets interface ipv4 address with prefix -| | ... | ${node} | ${interface} | @{ipv4_address2} +| | ... | ${node} | ${interface} | ${ipv4_address2} | ${ipv4_prefix} | | Then IPv4 address from Honeycomb should be -| | ... | ${node} | ${interface} | @{ipv4_address2} +| | ... | ${node} | ${interface} | ${ipv4_address2} | ${ipv4_prefix} | | And IPv4 address from VAT should be -| | ... | ${node} | ${interface} | @{ipv4_address2} | ${ipv4_mask} +| | ... | ${node} | ${interface} | ${ipv4_address2} +| | ... | ${ipv4_prefix} | ${ipv4_mask} | TC05: Honeycomb modifies IPv4 neighbor table | | [Documentation] | Check if Honeycomb API can add and remove ARP entries. @@ -104,9 +90,9 @@ | | Given IPv4 neighbor from Honeycomb should be empty | | ... | ${node} | ${interface} | | When Honeycomb adds interface ipv4 neighbor -| | ... | ${node} | ${interface} | @{ipv4_neighbor} +| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac} | | Then IPv4 neighbor from Honeycomb should be -| | ... | ${node} | ${interface} | @{ipv4_neighbor} +| | ... | ${node} | ${interface} | ${ipv4_neighbor} | ${neighbor_mac} | TC06: Honeycomb modifies interface configuration - IPv6 | | [Documentation] | Check if Honeycomb API can configure interfaces for ipv6. @@ -117,11 +103,11 @@ | | And IPv6 address from VAT should be empty | | ... | ${node} | ${interface} | | When Honeycomb sets interface ipv6 address -| | ... | ${node} | ${interface} | @{ipv6_address} +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} | | Then IPv6 address from Honeycomb should contain -| | ... | ${node} | ${interface} | @{ipv6_address} +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} | | And IPv6 address from VAT should contain -| | ... | ${node} | ${interface} | @{ipv6_address} +| | ... | ${node} | ${interface} | ${ipv6_address} | ${ipv6_prefix} | TC07: Honeycomb modifies IPv6 neighbor table | | [Documentation] | Check if Honeycomb API can add and remove ARP entries. @@ -130,18 +116,18 @@ | | Given IPv6 neighbor from Honeycomb should be empty | | ... | ${node} | ${interface} | | When Honeycomb adds interface ipv6 neighbor -| | ... | ${node} | ${interface} | @{ipv6_neighbor} +| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac} | | Then IPv6 neighbor from Honeycomb should be -| | ... | ${node} | ${interface} | @{ipv6_neighbor} +| | ... | ${node} | ${interface} | ${ipv6_neighbor} | ${neighbor_mac} | TC08: Honeycomb modifies interface configuration - MTU | | [Documentation] | Check if Honeycomb API can configure interface\ | | ... | MTU value. | | When Honeycomb sets interface ethernet configuration | | ... | ${node} | ${interface} | ${ethernet} -| | Then Interface ethernet configuration from Honeycomb should be +| | Then Interface ethernet Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | ${ethernet} -| | And Interface ethernet configuration from VAT should be +| | And Interface ethernet Operational Data From VAT Should Be | | ... | ${node} | ${interface} | ${ethernet['mtu']} | TC09: Honeycomb modifies interface configuration - vrf @@ -169,45 +155,46 @@ | | Given Path for 2-node testing is set | | ... | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['TG']} | | When Honeycomb sets interface ipv4 address with prefix -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv4_address} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv4_address} | ${ipv4_prefix} | | And Honeycomb adds interface ipv4 address -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv4_address2} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv4_address2} | ${ipv4_prefix} | | And Honeycomb sets interface ipv6 address -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv6_address} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv6_address} | ${ipv6_prefix} | | And Honeycomb adds interface ipv6 address -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv6_address2} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv6_address2} | ${ipv6_prefix} | | Then IPv4 address from Honeycomb should be -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv4_address} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv4_address} | ${ipv4_prefix} | | And IPv4 address from VAT should be -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv4_address} | ${ipv4_mask} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv4_address} +| | ... | ${ipv4_prefix} | ${ipv4_mask} | | And IPv6 address from Honeycomb should contain -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv6_address} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv6_address} | ${ipv6_prefix} | | And IPv6 address from VAT should contain -| | ... | ${dut_node} | ${dut_to_tg_if1} | @{ipv6_address} +| | ... | ${dut_node} | ${dut_to_tg_if1} | ${ipv6_address} | ${ipv6_prefix} | | And Honeycomb sets interface state | ${dut_node} | ${dut_to_tg_if1} | up | | And Honeycomb adds interface ipv4 neighbor | ${dut_node} | ${dut_to_tg_if1} -| | ... | @{ipv4_neighbor} +| | ... | ${ipv4_neighbor} | ${neighbor_mac} | | And Honeycomb adds interface ipv4 neighbor | ${dut_node} | ${dut_to_tg_if1} -| | ... | @{ipv4_neighbor2} +| | ... | ${ipv4_neighbor2} | ${neighbor_mac2} | | And Honeycomb adds interface ipv6 neighbor | ${dut_node} | ${dut_to_tg_if1} -| | ... | @{ipv6_neighbor} +| | ... | ${ipv6_neighbor} | ${neighbor_mac} | | And Honeycomb adds interface ipv6 neighbor | ${dut_node} | ${dut_to_tg_if1} -| | ... | @{ipv6_neighbor2} +| | ... | ${ipv6_neighbor2} | ${neighbor_mac2} | | And Vpp nodes ra suppress link layer | ${nodes} | | Then Ping and Verify IP address | ${nodes['TG']} -| | ... | ${ipv4_neighbor[0]} | ${ipv4_address[0]} +| | ... | ${ipv4_neighbor} | ${ipv4_address} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | | And Ping and Verify IP address | ${nodes['TG']} -| | ... | ${ipv4_neighbor2[0]} | ${ipv4_address2[0]} +| | ... | ${ipv4_neighbor2} | ${ipv4_address2} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | | And Ping and Verify IP address | ${nodes['TG']} -| | ... | ${ipv6_neighbor[0]} | ${ipv6_address[0]} +| | ... | ${ipv6_neighbor} | ${ipv6_address} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} | | And Ping and Verify IP address | ${nodes['TG']} -| | ... | ${ipv6_neighbor2[0]} | ${ipv6_address2[0]} +| | ... | ${ipv6_neighbor2} | ${ipv6_address2} | | ... | ${tg_to_dut_if1} | ${tg_to_dut_if1_mac} | | ... | ${tg_to_dut_if1} | ${dut_to_tg_if1_mac} diff --git a/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot index 29eb0af5cc..2efdaf2eb5 100644 --- a/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-inttap-apihc-apivat-func.robot @@ -26,7 +26,7 @@ | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Resource | resources/libraries/robot/honeycomb/tap.robot -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb TAP management test suite.* @@ -34,39 +34,39 @@ *** Test Cases *** | TC01: Honeycomb configures TAP interface | | [Documentation] | Check if Honeycomb API can configure a TAP interface. -| | Given TAP configuration from Honeycomb should be empty +| | Given TAP Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${tap_interface} -| | And TAP configuration from VAT should be empty +| | And TAP Operational Data From VAT Should Be empty | | ... | ${node} | ${tap_interface} | | When Honeycomb creates TAP interface | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | Then TAP configuration from Honeycomb should be +| | Then TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | And TAP configuration from VAT should be +| | And TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} | TC02: Honeycomb modifies existing TAP interface configuration | | [Documentation] | Check if Honeycomb API can re-configure and existing TAP\ | | ... | interface with new settings. -| | Given TAP configuration from Honeycomb should be +| | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | And TAP configuration from VAT should be +| | And TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} | | When Honeycomb configures TAP interface | | ... | ${node} | ${tap_interface} | ${tap_settings2} -| | Then TAP configuration from Honeycomb should be +| | Then TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings2} -| | And TAP configuration from VAT should be +| | And TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings2} | TC03: Honeycomb removes TAP interface | | [Documentation] | Check if Honeycomb API can remove TAP interface. -| | Given TAP configuration from Honeycomb should be +| | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings2} -| | And TAP configuration from VAT should be +| | And TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings2} | | When Honeycomb removes TAP interface | ${node} | ${tap_interface} -| | Then TAP configuration from Honeycomb should be empty +| | Then TAP Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${tap_interface} -| | And TAP configuration from VAT should be empty +| | And TAP Operational Data From VAT Should Be empty | | ... | ${node} | ${tap_interface} diff --git a/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot index 1e37918753..24e79fa799 100644 --- a/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-intvhost-apihc-apivat-func.robot @@ -26,7 +26,7 @@ | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/honeycomb/honeycomb.robot | Resource | resources/libraries/robot/honeycomb/vhost_user.robot -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb vhost-user interface management test suite.* @@ -36,102 +36,102 @@ | | [Documentation] | Check if Honeycomb creates a vhost-user interface, role:\ | | ... | server. | | ... -| | Given vhost-user configuration from Honeycomb should be empty +| | Given vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} | | When Honeycomb creates vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_server} | TC02: Honeycomb modifies vhost-user interface - server | | [Documentation] | Check if Honeycomb can modify properties of existing\ | | ... | vhost-user interface, role: server. | | ... -| | Given vhost-user configuration from Honeycomb should be +| | Given vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_server_edit_1} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server_edit_1} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_server_edit_1} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_server_edit_2} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server_edit_2} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_server_edit_2} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_server} | TC03: Honeycomb deletes vhost-user interface - server | | [Documentation] | Check if Honeycomb can delete an existing vhost-user\ | | ... | interface, role: server. | | ... -| | Given vhost-user configuration from Honeycomb should be +| | Given vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_server} | | When Honeycomb removes vhost-user interface | | ... | ${node} | ${vhost_interface} -| | Then vhost-user configuration from Honeycomb should be empty +| | Then vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} -| | And vhost-user configuration from VAT should be empty +| | And vhost-user Operational Data From VAT Should Be empty | | ... | ${node} | TC04: Honeycomb creates vhost-user interface - client | | [Documentation] | Check if Honeycomb creates a vhost-user interface, role:\ | | ... | client. | | ... -| | Given vhost-user configuration from Honeycomb should be empty +| | Given vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} | | When Honeycomb creates vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_client} | TC05: Honeycomb modifies vhost-user interface - client | | [Documentation] | Check if Honeycomb can modify properties of existing\ | | ... | vhost-user interface, role: client. | | ... -| | Given vhost-user configuration from Honeycomb should be +| | Given vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_client_edit_1} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client_edit_1} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_client_edit_1} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_client_edit_2} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client_edit_2} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_client_edit_2} | | When Honeycomb configures vhost-user interface | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} -| | Then vhost-user configuration from Honeycomb should be +| | Then vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} -| | And vhost-user configuration from VAT should be +| | And vhost-user Operational Data From VAT Should Be | | ... | ${node} | ${vhost_user_client} | TC06: Honeycomb deletes vhost-user interface - client | | [Documentation] | Check if Honeycomb can delete an existing vhost-user\ | | ... | interface, role: client. | | ... -| | Given vhost-user configuration from Honeycomb should be +| | Given vhost-user Operational Data From Honeycomb Should Be | | ... | ${node} | ${vhost_interface} | ${vhost_user_client} | | When Honeycomb removes vhost-user interface | | ... | ${node} | ${vhost_interface} -| | Then vhost-user configuration from Honeycomb should be empty +| | Then vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} -| | And vhost-user configuration from VAT should be empty +| | And vhost-user Operational Data From VAT Should Be empty | | ... | ${node} | TC07: Honeycomb does not set vhost-user configuration on another interface type @@ -140,20 +140,20 @@ | | ... | | When Honeycomb fails setting vhost-user on different interface type | | ... | ${node} | ${interface} | ${vhost_user_server} -| | Then vhost-user configuration from Honeycomb should be empty +| | Then vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} -| | And vhost-user configuration from VAT should be empty +| | And vhost-user Operational Data From VAT Should Be empty | | ... | ${node} | TC08: Honeycomb does not set invalid vhost-user configuration | | [Documentation] | Check if Honeycomb refuses to set invalid parameters to\ | | ... | vhost-user interface. | | ... -| | Given vhost-user configuration from Honeycomb should be empty +| | Given vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} | | When Honeycomb fails setting invalid vhost-user configuration | | ... | ${node} | ${vhost_interface} | ${vhost_user_wrong} -| | Then vhost-user configuration from Honeycomb should be empty +| | Then vhost-user Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vhost_interface} -| | And vhost-user configuration from VAT should be empty +| | And vhost-user Operational Data From VAT Should Be empty | | ... | ${node} diff --git a/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot index dca6a60303..e8649bd0c7 100644 --- a/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-l2bd-apihc-apivat-func.robot @@ -32,7 +32,7 @@ | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | ... | AND | Honeycomb removes all bridge domains | ${node} | @{interfaces} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb bridge domain management test suite.* *** Test Cases *** @@ -40,31 +40,31 @@ | | [Documentation] | Check if Honeycomb can create bridge domains on VPP node. | | When Honeycomb creates first l2 bridge domain | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | Then Bridge domain configuration from Honeycomb should be +| | Then Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | TC02: Honeycomb manages multiple bridge domains on node | | [Documentation] | Check if Honeycomb can manage multiple bridge domains on\ | | ... | a single node. -| | Given Bridge domain configuration from Honeycomb should be +| | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb creates l2 bridge domain | | ... | ${node} | ${bd2_name} | ${bd_settings} -| | Then Bridge domain configuration from Honeycomb should be +| | Then Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | And Bridge domain configuration from Honeycomb should be +| | And Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd2_name} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${1} | ${bd_settings} | TC03: Honeycomb removes bridge domains | | [Documentation] | Check if Honeycomb can remove bridge domains from a VPP\ | | ... | node. -| | Given Bridge domain configuration from Honeycomb should be +| | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb removes all bridge domains | ${node} | | Then Honeycomb should show no bridge domains | ${node} @@ -77,9 +77,9 @@ | | ... | ${node} | ${bd1_name} | ${bd_settings} | | When Honeycomb adds interfaces to bridge domain | | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings} -| | Then Bridge domain configuration from Honeycomb should be +| | Then Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | | And Honeycomb should show interfaces assigned to bridge domain | | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings} @@ -89,9 +89,9 @@ | TC05: Honeycomb cannot remove bridge domain with an interface assigned | | [Documentation] | Check if Honeycomb can remove a bridge domain that has an\ | | ... | interface assigned to it. Expect to fail with code 500. -| | Given Bridge domain configuration from Honeycomb should be +| | Given Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | | And Honeycomb should show interfaces assigned to bridge domain | | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings} @@ -99,9 +99,9 @@ | | ... | ${node} | ${0} | @{interfaces} | ${if_settings} | | When Run keyword and expect error | HoneycombError* Status code: 500. | | ... | Honeycomb removes all bridge domains | ${node} -| | Then Bridge domain configuration from Honeycomb should be +| | Then Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd1_name} | ${bd_settings} -| | And Bridge domain configuration from VAT should be +| | And Bridge domain Operational Data From VAT Should Be | | ... | ${node} | ${0} | ${bd_settings} | | And Honeycomb should show interfaces assigned to bridge domain | | ... | ${node} | @{interfaces} | ${bd1_name} | ${if_settings} diff --git a/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot index ef6a50ca4a..76683a70db 100644 --- a/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-l2fib-apihc-apivat-func.robot @@ -28,7 +28,7 @@ | ... | AND | ... | Honeycomb removes all bridge domains | ... | ${node} | ${interface} | ${interface2} -| Force tags | honeycomb_sanity | honeycomb_odl +| Force tags | HC_FUNC *** Variables *** # Interface to run tests on. @@ -52,13 +52,13 @@ | | ... | ${node} | ${interface} | up | | When Honeycomb creates first l2 bridge domain | | ... | ${node} | ${bd_name} | ${bd_settings} -| | Then Bridge domain configuration from Honeycomb should be +| | Then Bridge domain Operational Data From Honeycomb Should Be | | ... | ${node} | ${bd_name} | ${bd_settings} -| | Given Bridge domain configuration in interface operational data should be empty +| | Given Bridge domain Operational Interface Assignment should be empty | | ... | ${node} | ${interface} | | When Honeycomb adds interface to bridge domain | | ... | ${node} | ${interface} | ${bd_name} | ${if_bd_settings} -| | Then Bridge domain configuration in interface operational data should be +| | Then Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | Given L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -78,7 +78,7 @@ | | [Teardown] | Honeycomb removes L2 FIB entry | | ... | ${node} | ${bd_name} | ${l2_fib_static_forward_oper['phys-address']} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -98,7 +98,7 @@ | | [Teardown] | Honeycomb removes L2 FIB entry | | ... | ${node} | ${bd_name} | ${l2_fib_filter_oper['phys-address']} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -118,7 +118,7 @@ | | [Teardown] | Honeycomb removes L2 FIB entry | | ... | ${node} | ${bd_name} | ${l2_fib_forward_oper['phys-address']} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -143,7 +143,7 @@ | | [Teardown] | Honeycomb removes all L2 FIB entries | | ... | ${node} | ${bd_name} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -175,7 +175,7 @@ | | [Teardown] | Honeycomb removes all L2 FIB entries | | ... | ${node} | ${bd_name} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} @@ -207,7 +207,7 @@ | | [Teardown] | Honeycomb removes all L2 FIB entries | | ... | ${node} | ${bd_name} | | ... -| | Given Bridge domain configuration in interface operational data should be +| | Given Bridge domain Operational Interface Assignment should be | | ... | ${node} | ${interface} | ${if_bd_settings} | | And L2 FIB Table from Honeycomb should be empty | | ... | ${node} | ${bd_name} diff --git a/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot index 087720b0c6..174a145a52 100644 --- a/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-lisp-apihc-apivat-func.robot @@ -30,7 +30,7 @@ | Documentation | *Honeycomb Lisp test suite.* | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb enables Lisp feature diff --git a/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot index 3f4b08795a..068fbcf8a3 100644 --- a/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-nsh-apihc-apivat-func.robot @@ -30,7 +30,7 @@ *** Test Cases *** | TC01: Honeycomb can configure NSH entry | | [Documentation] | Check if Honeycomb can configure an NSH entry. -| | Given NSH configuration from Honeycomb should be empty | ${node} +| | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry1 | ${nsh_entry1} | | Then NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} @@ -40,13 +40,13 @@ | | Given NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} | | When Honeycomb removes NSH entry | ${node} | entry1 -| | Then NSH configuration from Honeycomb should be empty | ${node} +| | Then NSH Operational Data From Honeycomb Should Be empty | ${node} | TC03: Honeycomb can configure new NSH entry | | [Documentation] | Check if Honeycomb can configure an NSH antry after one\ | | ... | has been deleted. | | [Teardown] | Honeycomb removes NSH entry | ${node} | entry2 -| | Given NSH configuration from Honeycomb should be empty | ${node} +| | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry2 | ${nsh_entry2} | | Then NSH entry from Honeycomb should be | | ... | ${node} | entry2 | ${nsh_entry2_oper} @@ -55,7 +55,7 @@ | | [Documentation] | Check if Honeycomb can configure an NSH entry when one\ | | ... | already exists. | | [Teardown] | Honeycomb clears NSH configuration | ${node} -| | Given NSH configuration from Honeycomb should be empty | ${node} +| | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb adds NSH entry | ${node} | entry1 | ${nsh_entry1} | | And Honeycomb adds NSH entry | ${node} | entry2 | ${nsh_entry2} | | Then NSH entry from Honeycomb should be @@ -65,7 +65,7 @@ | TC05: Honeycomb can configure NSH map | | [Documentation] | Check if Honeycomb can configure an NSH map. -| | Given NSH configuration from Honeycomb should be empty | ${node} +| | Given NSH Operational Data From Honeycomb Should Be empty | ${node} | | And Honeycomb creates VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings1} | ${vxlan_gpe_settings1} @@ -77,7 +77,7 @@ | | [Documentation] | Check if Honeycomb can remove an existing NSH map. | | Given NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} -| | And VxLAN GPE configuration from Honeycomb should be +| | And VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings1} | ${vxlan_gpe_settings1} | | And NSH map from Honeycomb should be | ${node} | map1 | ${nsh_map1_oper} @@ -93,7 +93,7 @@ | | Given NSH map from Honeycomb should not exist | ${node} | map1_edit | | And NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} -| | And VxLAN GPE configuration from Honeycomb should be +| | And VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings1} | ${vxlan_gpe_settings1} | | When Honeycomb adds NSH map | ${node} | map1_edit | ${nsh_map1_edit} @@ -114,7 +114,7 @@ | | Given NSH map from Honeycomb should not exist | ${node} | map2 | | And NSH entry from Honeycomb should be | | ... | ${node} | entry1 | ${nsh_entry1_oper} -| | And VxLAN GPE configuration from Honeycomb should be +| | And VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings1} | ${vxlan_gpe_settings1} | | And Honeycomb creates VxLAN GPE interface diff --git a/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot index e4353e8e45..4d7c8a21ef 100644 --- a/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-pbb-apihc-apivat-func.robot @@ -22,7 +22,7 @@ | Documentation | *Honeycomb provider backbone bridge test suite.* | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** # TODO: add verifications once operational data or VPP dump is available. diff --git a/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot index cecd1c2846..abdd94ceb3 100644 --- a/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-pluginacl-apihc-apivat-func.robot @@ -46,7 +46,7 @@ | Suite Teardown | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb access control lists test suite for ACL plugin.* -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: ACL MAC filtering through plugin-acl node - bridged diff --git a/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot index f7d8e9912b..2884f7c628 100644 --- a/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-policer-apihc-func.robot @@ -32,40 +32,40 @@ | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb Policer management test suite.* *** Test Cases *** | TC01: Honeycomb can configure Policer | | [Documentation] | Checks if Honeycomb can configure Policer. -| | Given Policer configuration from Honeycomb should be empty | ${node} +| | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data} -| | Then Policer configuration from Honeycomb should be | ${node} +| | Then Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper} | TC02: Honeycomb can disable Policer | | [Documentation] | Checks if Honeycomb can disable Policer. -| | Given Policer configuration from Honeycomb should be | ${node} +| | Given Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper} | | When Honeycomb removes Policer configuration | ${node} -| | Then Policer configuration from Honeycomb should be empty | ${node} +| | Then Policer Operational Data From Honeycomb Should Be empty | ${node} | TC03: Honeycomb can configure Policer with increased values of CIR (900kbps) | | [Documentation] | Checks if Honeycomb can configure Policer\ | | ... | with increased values of CIR. | | [Teardown] | Policer test teardown | ${node} -| | Given Policer configuration from Honeycomb should be empty | ${node} +| | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data_2} -| | Then Policer configuration from Honeycomb should be | ${node} +| | Then Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper_2} | TC04: Honeycomb can configure Packets-Per-Second Based Policer | | [Documentation] | Checks if Honeycomb can configure Policer\ | | ... | based on rate-type measured in pps. | | [Teardown] | Policer test teardown | ${node} -| | Given Policer configuration from Honeycomb should be empty | ${node} +| | Given Policer Operational Data From Honeycomb Should Be empty | ${node} | | When Honeycomb configures Policer | ${node} | ${policer_data_3} -| | Then Policer configuration from Honeycomb should be | ${node} +| | Then Policer Operational Data From Honeycomb Should Be | ${node} | | ... | ${policer_data_oper_3} | TC05: Configure Policer on Interface diff --git a/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot index 9263ebbc2a..c6ad942170 100644 --- a/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-proxyarp-apihc-func.robot @@ -33,7 +33,7 @@ | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb And VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb proxyARP management test suite.* *** Test Cases *** diff --git a/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot index 423c7885ec..c934b06a84 100644 --- a/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-proxynd6-apihc-func.robot @@ -36,7 +36,7 @@ | Library | resources.libraries.python.Trace | Test Setup | Clear Packet Trace on All DUTs | ${nodes} | Suite Teardown | Restart Honeycomb And VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb IPv6 neighbor discovery proxy test suite.* *** Test Cases *** diff --git a/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot index 93c842010b..a722adaa7b 100644 --- a/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-routing-apihc-apivat-func.robot @@ -26,7 +26,7 @@ | Test Teardown | Honeycomb routing test teardown | ... | ${node} | ${table} | Documentation | *Honeycomb routing test suite.* -| Force Tags | Honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: Single hop IPv4 route diff --git a/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot b/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot index 8d85eb2a45..3325a0f9bd 100644 --- a/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-slaac-apihc-func.robot @@ -25,79 +25,79 @@ | Suite Teardown | ... | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Documentation | *Honeycomb SLAAC management test suite.* | Variables | resources/test_data/honeycomb/slaac_variables.py *** Test Cases *** | TC01: Honeycomb can configure SLAAC | | [Documentation] | Checks if Honeycomb can congigure SLAAC. -| | Given SLAAC configuration from Honeycomb should be empty | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface ipv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data} -| | Then SLAAC configuration from Honeycomb should be | ${node} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | | ... | ${interface} | ${slaac_data} | TC02: Honeycomb can disable SLAAC | | [Documentation] | Checks if Honeycomb can disable SLAAC. -| | Given SLAAC configuration from Honeycomb should be | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be | ${node} | | ... | ${interface} | ${slaac_data} | | When Honeycomb removes SLAAC configuration | ${node} | ${interface} -| | Then SLAAC configuration from Honeycomb should be empty | ${node} +| | Then SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | TC03: Honeycomb can configure SLAAC with suppress link layer disabled | | [Documentation] | Checks if Honeycomb can congigure SLAAC. | | [Teardown] | SLAAC test teardown | ${node} | ${interface} -| | Given SLAAC configuration from Honeycomb should be empty | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface ipv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data} -| | Then SLAAC configuration from Honeycomb should be | ${node} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | | ... | ${interface} | ${slaac_data} | TC04: Honeycomb can configure SLAAC with sending RA packets disabled | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. | | [Teardown] | SLAAC test teardown | ${node} | ${interface} -| | Given SLAAC configuration from Honeycomb should be empty | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface ipv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_01} -| | Then SLAAC configuration from Honeycomb should be | ${node} | ${interface} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} | | ... | ${slaac_data_01} | TC05: Honeycomb can configure SLAAC with min interval values | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. | | [Teardown] | SLAAC test teardown | ${node} | ${interface} -| | Given SLAAC configuration from Honeycomb should be empty | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface ipv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_02} -| | Then SLAAC configuration from Honeycomb should be | ${node} | ${interface} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} | | ... | ${slaac_data_02} | TC06: Honeycomb can configure SLAAC with max interval values | | [Documentation] | Checks if Honeycomb can configure SLAAC\ | | ... | with given settings. | | [Teardown] | SLAAC test teardown | ${node} | ${interface} -| | Given SLAAC configuration from Honeycomb should be empty | ${node} +| | Given SLAAC Operational Data From Honeycomb Should Be empty | ${node} | | ... | ${interface} | | And InterfaceAPI.Set Interface State | ${node} | ${interface} | up | | And Honeycomb sets interface ipv6 address | ${node} | ${interface} | | ... | ${address} | ${prefix} | | When Honeycomb configures SLAAC | ${node} | ${interface} | ${slaac_data_03} -| | Then SLAAC configuration from Honeycomb should be | ${node} | ${interface} +| | Then SLAAC Operational Data From Honeycomb Should Be | ${node} | ${interface} | | ... | ${slaac_data_03} | TC07: DUT retransmits RA on IPv6 enabled interface after a set interval diff --git a/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot index c4e929574f..d765f1e4e9 100644 --- a/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-snat44-apihc-apivat-func.robot @@ -22,12 +22,12 @@ | Documentation | *Honeycomb NAT test suite.* | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC *** Test Cases *** | TC01: Honeycomb configures NAT entry | | [Documentation] | Honeycomb configures a static NAT entry. -| | Given NAT configuration from Honeycomb should be empty +| | Given NAT Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${nat_empty} | | When Honeycomb Configures NAT Entry | ${node} | ${entry1} | | Then NAT Entries From Honeycomb Should Be | ${node} | ${entry1} @@ -36,13 +36,13 @@ | | [Documentation] | Honeycomb removes a configured static NAT entry. | | Given NAT Entries From Honeycomb Should Be | ${node} | ${entry1} | | When Honeycomb Configures NAT Entry | ${node} | ${NONE} -| | Then NAT configuration from Honeycomb should be empty +| | Then NAT Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${nat_empty} | TC03: Honeycomb configures multiple NAT entries | | [Documentation] | Honeycomb configures two static NAT entries. | | [Teardown] | Honeycomb Configures NAT Entry | ${node} | ${NONE} -| | Given NAT configuration from Honeycomb should be empty +| | Given NAT Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${nat_empty} | | When Honeycomb Configures NAT Entry | ${node} | ${entry1} | ${0} | ${1} | | And Honeycomb Configures NAT Entry | ${node} | ${entry2} | ${0} | ${2} @@ -52,28 +52,28 @@ | TC04: Honeycomb enables NAT on interface - inbound | | [Documentation] | Honeycomb configures NAT on an interface\ | | ... | in inbound direction. -| | Given NAT Interface Configuration From Honeycomb Should Be Empty +| | Given NAT Interface Operational Data From Honeycomb Should Be Empty | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should Be Empty +| | And NAT Interface Operational Data From Honeycomb Should Be Empty | | ... | ${node} | ${interface} | outbound | | When Honeycomb Configures NAT On Interface | | ... | ${node} | ${interface} | inbound -| | Then NAT Interface Configuration From Honeycomb Should Be +| | Then NAT Interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should be empty +| | And NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | outbound | TC05: Honeycomb removes NAT interface configuration | | [Documentation] | Honeycomb removes NAT configuration from an interface. -| | Given NAT Interface Configuration From Honeycomb Should Be +| | Given NAT Interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should Be empty +| | And NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | outbound | | When Honeycomb removes NAT interface configuration | | ... | ${node} | ${interface} | inbound -| | Then NAT Interface Configuration From Honeycomb Should Be empty +| | Then NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should Be empty +| | And NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | outbound | TC06: Honeycomb enables NAT on interface - outbound @@ -81,13 +81,13 @@ | | ... | in outbound direction. | | [Teardown] | Honeycomb removes NAT interface configuration | | ... | ${node} | ${interface} | outbound -| | Given NAT Interface Configuration From Honeycomb Should Be empty +| | Given NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should Be empty +| | And NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | outbound | | When Honeycomb Configures NAT on Interface | | ... | ${node} | ${interface} | outbound -| | Then NAT Interface Configuration From Honeycomb Should Be empty +| | Then NAT Interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} | inbound -| | And NAT Interface Configuration From Honeycomb Should Be +| | And NAT Interface Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface} | outbound diff --git a/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot index cf1f4b880f..74c56eb564 100644 --- a/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-spanrx-apihc-apivat-func.robot @@ -21,7 +21,7 @@ | Variables | resources/test_data/honeycomb/spanrx-apihc-apivat.py | ... | ${node} | ${node['interfaces']['port1']['name']} | ... | ${node['interfaces']['port3']['name']} | local0 -| Force Tags | honeycomb_sanity +| Force Tags | HC_FUNC | Suite Setup | Add Interface local0 To Topology | ${node} | Suite Teardown | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb port mirroring test suite.* @@ -33,7 +33,7 @@ | | ... | | When Honeycomb Configures SPAN on interface | | ... | ${node} | ${interface1} | ${settings_1} -| | Then Interface SPAN configuration from Honeycomb should be +| | Then Interface SPAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface1} | ${settings_1} | TC02: Honeycomb can configure SPAN on an interface transmit @@ -42,7 +42,7 @@ | | ... | | When Honeycomb Configures SPAN on interface | | ... | ${node} | ${interface1} | ${settings_2} -| | Then Interface SPAN configuration from Honeycomb should be +| | Then Interface SPAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface1} | ${settings_2} | TC03: Honeycomb can configure SPAN on an interface both @@ -51,7 +51,7 @@ | | ... | | When Honeycomb Configures SPAN on interface | | ... | ${node} | ${interface1} | ${settings_3} -| | Then Interface SPAN configuration from Honeycomb should be +| | Then Interface SPAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface1} | ${settings_3} | TC04: Honeycomb can configure SPAN on two interfaces @@ -60,18 +60,18 @@ | | ... | | When Honeycomb Configures SPAN on interface | | ... | ${node} | ${interface1} | ${settings_2} | ${settings_4} -| | Then Interface SPAN configuration from Honeycomb should be +| | Then Interface SPAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface1} | ${settings_2} | ${settings_4} | TC05: Honeycomb can disable SPAN on interface | | [Documentation] | Honeycomb removes existing SPAN configuration | | ... | on interface. | | ... -| | Given Interface SPAN configuration from Honeycomb should be +| | Given Interface SPAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${interface1} | ${settings_2} | ${settings_4} | | When Honeycomb removes interface SPAN configuration | | ... | ${node} | ${interface1} -| | Then Interface SPAN configuration from Honeycomb should be empty +| | Then Interface SPAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface1} | TC06: DUT mirrors IPv4 packets from one interface to another diff --git a/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot index f4cec2712d..339fdb8972 100644 --- a/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-vxlan-apihc-apivat-func.robot @@ -32,7 +32,7 @@ | Resource | resources/libraries/robot/honeycomb/vxlan.robot # import additional VxLAN settings from resource file | Variables | resources/test_data/honeycomb/vxlan.py -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} | Documentation | *Honeycomb VxLAN management test suite.* @@ -40,14 +40,14 @@ *** Test Cases *** | TC01: Honeycomb configures VxLAN tunnel | | [Documentation] | Check if Honeycomb API can configure VxLAN settings. -| | Given VxLAN configuration from Honeycomb should be empty +| | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data From VAT Should Be empty | ${node} | | When Honeycomb sets interface VxLAN configuration | | ... | ${node} | ${vx_interface} | ${vxlan_settings} -| | Then VxLAN configuration from Honeycomb should be +| | Then VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings} -| | And VxLAN configuration from VAT should be +| | And VxLAN Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_settings} | | ${vxlan_index}= | Get Interface index from oper data | | ... | ${node} | ${vx_interface} @@ -55,60 +55,60 @@ | TC02: Honeycomb disables VxLAN tunnel | | [Documentation] | Check if Honeycomb API can reset VxLAN configuration. -| | Given VxLAN configuration from Honeycomb should be +| | Given VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings} | | And Honeycomb should not show disabled interface in oper data | | ... | ${node} | ${vxlan_index} -| | And VxLAN configuration from VAT should be +| | And VxLAN Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_settings} | | When Honeycomb removes VxLAN tunnel settings | ${node} | ${vx_interface} -| | Then VxLAN configuration from Honeycomb should be empty +| | Then VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And Honeycomb should show disabled interface in oper data | | ... | ${node} | ${vxlan_index} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data From VAT Should Be empty | ${node} | TC03: 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. | | [Teardown] | Honeycomb removes VxLAN tunnel settings | | ... | ${node} | ${vx_interface} -| | Given VxLAN configuration from Honeycomb should be empty +| | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | | And Honeycomb should show disabled interface in oper data | | ... | ${node} | ${vxlan_index} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data From VAT Should Be empty | ${node} | | When Honeycomb sets interface VxLAN configuration | | ... | ${node} | ${vx_interface} | ${vxlan_settings2} -| | Then VxLAN configuration from Honeycomb should be +| | Then VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings2} | | And Honeycomb should not show disabled interface in oper data | | ... | ${node} | ${vxlan_index} -| | And VxLAN configuration from VAT should be +| | And VxLAN Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_settings2} | TC04: Honeycomb does not set VxLAN configuration on another interface type | | [Documentation] | Check if Honeycomb API prevents setting VxLAN\ | | ... | on incorrect interface. -| | Given VxLAN configuration from Honeycomb should be empty +| | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data From VAT Should Be empty | ${node} | | When Honeycomb fails setting VxLan on different interface type | | ... | ${node} | ${interface} | ${vxlan_settings2} -| | Then VxLAN configuration from Honeycomb should be empty +| | Then VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${interface} -| | And VxLAN configuration from VAT should be empty +| | And VxLAN Operational Data From VAT Should Be empty | | ... | ${node} | TC05: Honeycomb does not set invalid VxLAN configuration | | [Documentation] | Check if Honeycomb API prevents setting incorrect VxLAN\ | | ... | settings. -| | Given VxLAN configuration from Honeycomb should be empty +| | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data From VAT Should Be empty | ${node} | | When Honeycomb fails setting invalid VxLAN configuration | | ... | ${node} | ${vx_interface} | ${vxlan_invalid} -| | Then VxLAN configuration from Honeycomb should be empty +| | Then VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} | TC06: Honeycomb configures VxLAN tunnel with ipv6 @@ -116,12 +116,12 @@ | | ... | ipv6 settings. | | [Teardown] | Honeycomb removes VxLAN tunnel settings | | ... | ${node} | ${vx_interface} -| | Given VxLAN configuration from Honeycomb should be empty +| | Given VxLAN Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vx_interface} -| | And VxLAN configuration from VAT should be empty | ${node} +| | And VxLAN Operational Data 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 +| | Then VxLAN Operational Data From Honeycomb Should Be | | ... | ${node} | ${vx_interface} | ${vxlan_settings_ipv6_long} -| | And VxLAN configuration from VAT should be +| | And VxLAN Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_settings_ipv6} diff --git a/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot b/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot index 7902396e40..253cd6ab05 100644 --- a/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot +++ b/tests/func/honeycomb/mgmt-cfg-vxlangpe-apihc-apivat-func.robot @@ -39,7 +39,7 @@ # Import additional VxLAN GPE settings from resource file | Variables | resources/test_data/honeycomb/vxlan_gpe.py | Documentation | *Honeycomb VxLAN-GPE management test suite.* -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Suite Setup | ... | Restart Honeycomb and VPP | ${node} @@ -47,17 +47,17 @@ | TC01: Honeycomb creates VxLAN GPE tunnel | | [Documentation] | Check if Honeycomb API can configure a VxLAN GPE tunnel. | | ... -| | Given interface configuration from Honeycomb should be empty +| | Given interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if1} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if1} | | When Honeycomb creates VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings} | ${vxlan_gpe_settings} -| | Then VxLAN GPE configuration from Honeycomb should be +| | Then VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings} | ${vxlan_gpe_settings} -| | And VxLAN GPE configuration from VAT should be +| | And VxLAN GPE Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_gpe_if1} | ${vxlan_gpe_settings} | | And VxLAN GPE Interface indices from Honeycomb and VAT should correspond | | ... | ${node} | ${vxlan_gpe_if1} @@ -65,80 +65,80 @@ | TC02: Honeycomb removes VxLAN GPE tunnel | | [Documentation] | Check if Honeycomb API can remove VxLAN GPE tunnel. | | ... -| | Given VxLAN GPE configuration from Honeycomb should be +| | Given VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if1} | | ... | ${vxlan_gpe_base_settings} | ${vxlan_gpe_settings} -| | VxLAN GPE configuration from VAT should be +| | VxLAN GPE Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_gpe_if1} | ${vxlan_gpe_settings} | | When Honeycomb removes VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if1} -| | Then VxLAN GPE configuration from Honeycomb should be empty +| | Then VxLAN GPE Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if1} -| | And VxLAN GPE configuration from VAT should be empty +| | And VxLAN GPE Operational Data From VAT Should Be empty | | ... | ${node} | TC03: Honeycomb sets wrong interface type while creating VxLAN GPE tunnel | | [Documentation] | Check if Honeycomb refuses to create a VxLAN GPE tunnel\ | | ... | with a wrong interface type set. | | ... -| | Given interface configuration from Honeycomb should be empty +| | Given interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if2} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if2} | | When Honeycomb fails to create VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if2} | | ... | ${vxlan_gpe_wrong_type_base_settings} | ${vxlan_gpe_settings} -| | Then interface configuration from Honeycomb should be empty +| | Then interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if2} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if2} | TC04: Honeycomb sets wrong protocol while creating VxLAN GPE tunnel | | [Documentation] | Check if Honeycomb refuses to create a VxLAN GPE tunnel\ | | ... | with a wrong next-protocol set. | | ... -| | Given interface configuration from Honeycomb should be empty +| | Given interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if3} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if3} | | When Honeycomb fails to create VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if3} | | ... | ${vxlan_gpe_wrong_protocol_base_settings} | | ... | ${vxlan_gpe_wrong_protocol_settings} -| | Then interface configuration from Honeycomb should be empty +| | Then interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if3} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if3} | TC05: Honeycomb sets VxLAN GPE tunnel on existing interface with wrong type | | [Documentation] | Check if Honeycomb refuses to create a VxLAN GPE tunnel\ | | ... | on existing interface with wrong type. | | ... -| | Given VxLAN GPE configuration from VAT should be empty +| | Given VxLAN GPE Operational Data From VAT Should Be empty | | ... | ${node} | | When Honeycomb fails to create VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_existing_if} | | ... | ${vxlan_gpe_base_wrong_interface_settings} | | ... | ${vxlan_gpe_wrong_interface_settings} -| | Then VxLAN GPE configuration from VAT should be empty +| | Then VxLAN GPE Operational Data From VAT Should Be empty | | ... | ${node} | TC06: Honeycomb creates VxLAN GPE tunnel with ipv6 | | [Documentation] | Check if Honeycomb API can configure a VxLAN GPE tunnel\ | | ... | with IPv6 addresses. | | ... -| | Given VxLAN GPE configuration from VAT should be empty +| | Given VxLAN GPE Operational Data From VAT Should Be empty | | ... | ${node} -| | And VxLAN GPE configuration from Honeycomb should be empty +| | And VxLAN GPE Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if5} | | When Honeycomb creates VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if5} | | ... | ${vxlan_gpe_base_ipv6_settings} | ${vxlan_gpe_ipv6_settings} -| | Then VxLAN GPE configuration from Honeycomb should be +| | Then VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if5} | | ... | ${vxlan_gpe_base_ipv6_settings} | ${vxlan_gpe_ipv6_settings} | | And Run Keyword And Continue On Failure -| | ... | VxLAN GPE configuration from VAT should be +| | ... | VxLAN GPE Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_gpe_if5} | ${vxlan_gpe_ipv6_settings} | | And VxLAN GPE Interface indices from Honeycomb and VAT should correspond | | ... | ${node} | ${vxlan_gpe_if5} @@ -147,17 +147,17 @@ | | [Documentation] | Check if Honeycomb API can configure another VxLAN\ | | ... | GPE tunnel with IPv6 addresses. | | ... -| | Given interface configuration from Honeycomb should be empty +| | Given interface Operational Data From Honeycomb Should Be empty | | ... | ${node} | ${vxlan_gpe_if6} -| | And interface configuration from VAT should be empty +| | And interface Operational Data From VAT Should Be empty | | ... | ${node} | ${vxlan_gpe_if6} | | When Honeycomb creates VxLAN GPE interface | | ... | ${node} | ${vxlan_gpe_if6} | | ... | ${vxlan_gpe_base_ipv6_settings2} | ${vxlan_gpe_ipv6_settings2} -| | Then VxLAN GPE configuration from Honeycomb should be +| | Then VxLAN GPE Operational Data From Honeycomb Should Be | | ... | ${node} | ${vxlan_gpe_if6} | | ... | ${vxlan_gpe_base_ipv6_settings2} | ${vxlan_gpe_ipv6_settings2} -| | And VxLAN GPE configuration from VAT should be +| | And VxLAN GPE Operational Data From VAT Should Be | | ... | ${node} | ${vxlan_gpe_if6} | ${vxlan_gpe_ipv6_settings2} | | And VxLAN GPE Interface indices from Honeycomb and VAT should correspond | | ... | ${node} | ${vxlan_gpe_if6} diff --git a/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot b/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot index a1bd91625f..3386e1fe60 100644 --- a/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot +++ b/tests/func/honeycomb/mgmt-notif-apihcnc-func.robot @@ -30,7 +30,7 @@ | ... | Honeycomb creates TAP interface | ... | ${node} | ${tap_interface} | ${tap_settings} | Documentation | *Honeycomb notifications test suite.* -| Force Tags | honeycomb_sanity | honeycomb_odl +| Force Tags | HC_FUNC | Suite Teardown | Run Keyword If Any Tests Failed | ... | Restart Honeycomb and VPP | ${node} @@ -50,9 +50,9 @@ | TC02: Honeycomb sends notification on interface deletion | | [Documentation] | Check if Honeycomb sends an interface-deleted notification | | ... | when an interface is deleted. -| | Given TAP configuration from Honeycomb should be +| | Given TAP Operational Data From Honeycomb Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} -| | And TAP configuration from VAT should be +| | And TAP Operational Data From VAT Should Be | | ... | ${node} | ${tap_interface} | ${tap_settings} | | And Notification listener is established | ${node} | | When Honeycomb removes TAP interface | ${node} | ${tap_interface} diff --git a/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot b/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot index 28746e66fb..5dfa4b5aed 100644 --- a/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot +++ b/tests/func/honeycomb/mgmt-statepersist-apihc-func.robot @@ -18,52 +18,125 @@ *** Settings *** | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/honeycomb/persistence.robot +| Resource | resources/libraries/robot/honeycomb/interfaces.robot +| Resource | resources/libraries/robot/honeycomb/bridge_domain.robot +| Resource | resources/libraries/robot/honeycomb/l2_fib.robot | Suite Setup | Run Keywords | ... | Configure Persistence | ${node} | enable | AND | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} | Suite Teardown | Configure Persistence | ${node} | disable -| Force Tags | honeycomb_sanity +| Force Tags | HC_PERSIST | HC_REST_ONLY | Documentation | *Honeycomb configuration persistence test suite.* *** Test Cases *** +# multi-feature cases +# =================== | TC01: Honeycomb persists configuration through restart of both Honeycomb and VPP | | [Documentation] | Checks if Honeycomb maintains configuration after both\ | | ... | Honeycomb and VPP are restarted. -# Vxlan tunnel name is sometimes not properly restored (HC2VPP-47) -| | [Tags] | EXPECTED_FAILING -| | Given Honeycomb configures every setting | ${node} | ${interface} -| | And Honeycomb and VPP should verify every setting | ${node} | ${interface} +| | [Tags] | HC_FUNC +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Multi-Feature Persistence test configuration | ${node} | ${interface} +| | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} | | When Honeycomb and VPP are restarted | ${node} -| | Then Honeycomb and VPP should verify every setting | ${node} | ${interface} -| | And Honeycomb should show no rogue interfaces | ${node} +| | Then Multi-Feature persistence Test Verification | ${node} | ${interface} + +| TC02: Honeycomb reverts to defaults if persistence files are invalid +| | [Documentation] | Checks if Honeycomb reverts to default configuration when\ +| | ... | persistence files are damaged or invalid. +| | [Tags] | HC_FUNC +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Multi-Feature Persistence test configuration | ${node} | ${interface} +| | And Multi-Feature persistence Test Verification | ${node} | ${interface} +| | When Persistence file is damaged during restart | ${node} +| | Then Honeycomb and VPP should have default configuration | ${node} -| TC02: Honeycomb persists configuration through restart of Honeycomb +| TC03: Honeycomb persists configuration through restart of Honeycomb | | [Documentation] | Checks if Honeycomb maintains configuration after it\ | | ... | is restarted. -# Vxlan tunnel name is sometimes not properly restored (HC2VPP-47) -| | [Tags] | EXPECTED_FAILING -| | Given Honeycomb and VPP should verify every setting | ${node} | ${interface} +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Multi-Feature Persistence test configuration | ${node} | ${interface} +| | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} | | When Honeycomb is restarted | ${node} -| | Then Honeycomb and VPP should verify every setting | ${node} | ${interface} -| | And Honeycomb should show no rogue interfaces | ${node} +| | Then Multi-Feature persistence Test Verification | ${node} | ${interface} -| TC03: Honeycomb persists configuration through restart of VPP +| TC04: Honeycomb persists configuration through restart of VPP | | [Documentation] | Checks if Honeycomb updates VPP settings after VPP is\ | | ... | restarted. -# Vxlan tunnel name is sometimes not properly restored (HC2VPP-47) -| | [Tags] | EXPECTED_FAILING -| | Given Honeycomb and VPP should verify every setting | ${node} | ${interface} +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Multi-Feature Persistence test configuration | ${node} | ${interface} +| | And Multi-Feature persistence Test Verification | ${node} | ${interface} | | And Log persisted configuration on node | ${node} | | When VPP is restarted | ${node} -| | Then Honeycomb and VPP should verify every setting | ${node} | ${interface} -| | And Honeycomb should show no rogue interfaces | ${node} +| | Then Multi-Feature persistence Test Verification | ${node} | ${interface} -| TC04: Honeycomb reverts to defaults if persistence files are invalid -| | [Documentation] | Checks if Honeycomb reverts to default configuration when\ -| | ... | persistence files are damaged or invalid. -| | [Teardown] | Run keyword if test failed +# single-feature cases +# ==================== + +| TC05: Persist configuration of IP addresses and neighbors - HC and VPP restart +| | [Documentation] | Verify persistence of interface state, IPv4 address +| | ... | and neighbor entries through restart of both Honeycomb and VPP. +| | [Teardown] | | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} -| | When Persistence file is damaged during restart | ${node} -| | Then Honeycomb and VPP should have default configuration | ${node} +| | Given Interface Persistence Setup | ${node} +| | And Interface Persistence Check | ${node} +| | When Honeycomb and VPP are restarted | ${node} +| | Then Interface Persistence Check | ${node} + +| TC06: Persist configuration of IP addresses and neighbors - HC restart +| | [Documentation] | Verify persistence of interface state, IPv4 address +| | ... | and neighbor entries through restart of Honeycomb. +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Interface Persistence Setup | ${node} +| | And Interface Persistence Check | ${node} +| | When Honeycomb is restarted | ${node} +| | Then Interface Persistence Check | ${node} + +| TC07: Persist configuration of IP addresses and neighbors - VPP restart +| | [Documentation] | Verify persistence of interface state, IPv4 address +| | ... | and neighbor entries through restart of VPP. +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Interface Persistence Setup | ${node} +| | And Interface Persistence Check | ${node} +| | When VPP is restarted | ${node} +| | Then Interface Persistence Check | ${node} + +| TC08: Honeycomb persists configuration of bridge domains - HC and VPP restart +| | [Documentation] | Verify persistence of bridge domain, L2-FIB entry +| | ... | and Bridge domain Operational Interface Assignment through restart +| | ... | of both Honeycomb and VPP. +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Bridge Domain Persistence Setup | ${node} +| | When Honeycomb and VPP are restarted | ${node} +| | Then Bridge Domain Persistence Check | ${node} + +| TC09: Honeycomb persists configuration of bridge domains - HC restart +| | [Documentation] | Verify persistence of bridge domain, L2-FIB entry +| | ... | and Bridge domain Operational Interface Assignment through restart +| | ... | of Honeycomb. +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Bridge Domain Persistence Setup | ${node} +| | When Honeycomb is restarted | ${node} +| | Then Bridge Domain Persistence Check | ${node} + +| TC10: Honeycomb persists configuration of bridge domains - VPP restart +| | [Documentation] | Verify persistence of bridge domain, L2-FIB entry +| | ... | and Bridge domain Operational Interface Assignment through restart +| | ... | of VPP. +| | [Teardown] +| | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} +| | Given Bridge Domain Persistence Setup | ${node} +| | When VPP is restarted | ${node} +| | Then Bridge Domain Persistence Check | ${node} + +#TODO: All other features |