X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=tests%2Ffunc%2Fhoneycomb%2Fmgmt-cfg-int-subint-apihc-apivat-func.robot;h=f050a4dfa699a5a43fc3421f0c93999f5d58c14e;hp=9ee12e1a184caa811c9c3d3b500f8aca98bef5c9;hb=e3171449c75d948461ac24b0df7212e8a2ca45f9;hpb=fc42ade3d5c7ed279e867cb55ca42a44db5e706d 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 9ee12e1a18..f050a4dfa6 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 @@ -18,21 +18,21 @@ | Resource | resources/libraries/robot/honeycomb/bridge_domain.robot | Resource | resources/libraries/robot/honeycomb/interfaces.robot | Variables | resources/test_data/honeycomb/sub_interfaces.py -| Suite Teardown | Run keywords -| ... | Run Keyword If Any Tests Failed +| Suite Teardown | ... | Restart Honeycomb And VPP And Clear Persisted Configuration | ${node} -| ... | AND | Honeycomb removes all bridge domains | ${node} | Force Tags | honeycomb_sanity | Documentation | *Honeycomb sub-interface management test suite.* *** Variables *** -# Test interface 1 and its sub-interface parameters: +# Test interfaces and their sub-interface parameters: | ${super_if}= | ${node['interfaces']['port1']['name']} +| ${super_if2}= | ${node['interfaces']['port3']['name']} | ${sub_if_id}= | ${sub_if_1_settings['identifier']} | ${sub_if_name}= | ${super_if}.${sub_if_id} +| ${sub_if2_name}= | ${super_if2}.${sub_if_id} *** Test Cases *** -| TC01: Honycomb creates sub-interface +| TC01: Honeycomb creates sub-interface | | [Documentation] | Check if Honeycomb creates a sub-interface. | | ... | | Given Honeycomb sets interface state | ${node} | ${super_if} | down @@ -383,6 +383,82 @@ | | ... | ${node} | ${sub_if_name} | | ... | ${ipv4_2['address']} | ${ipv4_2['prefix-length']} +| TC18: Honeycomb modifies sub-interface exact tag match +| | [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 +| | ... | ${node} | ${super_if2} | ${sub_if_id} +| | And interface configuration 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 +| | ... | ${node} | ${super_if2} | ${sub_if_id} | ${sub_if_2_oper} +| | And Sub-interface configuration 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} + +| TC19: Honeycomb configures sub-interface ipv6 address +| | [Documentation] | Check if Honeycomb can configure an ipv6 address on the\ +| | ... | sub-interface. +| | ... +| | Given sub-interface ipv6 address from Honeycomb should be empty +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | And sub-interface ipv6 address from VAT should be empty +| | ... | ${node} | ${sub_if_name} +| | When Honeycomb sets sub-interface ipv6 address +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} +| | Then sub-interface IPv6 address from Honeycomb should contain +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} +| | And sub-interface IPv6 address from VAT should contain +| | ... | ${node} | ${sub_if_name} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} + +| TC20: Honeycomb removes sub-interface ipv6 address +| | [Documentation] | Check if Honeycomb can remove configured ipv6 addresses\ +| | ... | from the sub-interface. +| | ... +| | Given sub-interface IPv6 address from Honeycomb should contain +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} +| | Run Keyword And Continue On Failure +| | ... | And sub-interface IPv6 address from VAT should contain +| | ... | ${node} | ${sub_if_name} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} +| | When Honeycomb removes all sub-interface ipv6 addresses +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | Then sub-interface ipv6 address from Honeycomb should be empty +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | And sub-interface ipv6 address from VAT should be empty +| | ... | ${node} | ${sub_if_name} + +| TC21: Honeycomb modifies existing sub-interface ipv6 address +| | [Documentation] | Check if Honeycomb can modify an ipv6 address already\ +| | ... | configured on the sub-interface. +| | [Teardown] | Honeycomb removes all sub-interface ipv6 addresses +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | Given sub-interface ipv6 address from Honeycomb should be empty +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | And sub-interface ipv6 address from VAT should be empty +| | ... | ${node} | ${sub_if_name} +| | When Honeycomb sets sub-interface ipv6 address +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6['address']} | ${ipv6['prefix-length']} +| | And Honeycomb sets sub-interface ipv6 address +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']} +| | Then sub-interface IPv6 address from Honeycomb should contain +| | ... | ${node} | ${super_if} | ${sub_if_id} +| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']} +| | And sub-interface IPv6 address from VAT should contain +| | ... | ${node} | ${sub_if_name} +| | ... | ${ipv6_2['address']} | ${ipv6_2['prefix-length']} + + *** Keywords *** | Set super and sub interfaces up | | [Documentation] | Honeycomb sets super-interface and sub-interface up, in \