diff options
Diffstat (limited to 'tests/suites')
-rw-r--r-- | tests/suites/honeycomb/7 - persistence.robot | 41 | ||||
-rw-r--r-- | tests/suites/honeycomb/resources/persistence.py | 104 |
2 files changed, 111 insertions, 34 deletions
diff --git a/tests/suites/honeycomb/7 - persistence.robot b/tests/suites/honeycomb/7 - persistence.robot index 24043c343c..f992b64010 100644 --- a/tests/suites/honeycomb/7 - persistence.robot +++ b/tests/suites/honeycomb/7 - persistence.robot @@ -19,28 +19,24 @@ *** Settings *** | Resource | resources/libraries/robot/default.robot | Resource | resources/libraries/robot/honeycomb/persistence.robot -# Restart Honeycomb and VPP to clear configuration before tests. -| Suite Setup | Run keywords -| ... | Stop Honeycomb service on DUTs | ${node} | AND -| ... | Clear persisted Honeycomb configuration | ${node} | AND -| ... | Setup DUT | ${node} | AND -| ... | Setup Honeycomb service on DUTs | ${node} +| Suite Setup | Restart Honeycomb and VPP and clear persisted configuration +| ... | ${node} | Documentation | *Honeycomb configuration persistence test suite.* +| Force Tags | honeycomb_sanity *** Test Cases *** -| Honeycomb persists configuration through restart of both systems +| Honeycomb persists configuration through restart of both Honeycomb and VPP | | [Documentation] | Checks if Honeycomb maintains configuration after both\ | | ... | Honeycomb and VPP are restarted. -| | [Tags] | honeycomb_sanity -| | When Honeycomb configures every setting | ${node} | ${interface} -| | And Honeycomb and VPP are restarted | ${node} +| | Given Honeycomb configures every setting | ${node} | ${interface} +| | And Honeycomb and VPP should verify every setting | ${node} | ${interface} +| | 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} | Honeycomb persists configuration through restart of Honeycomb | | [Documentation] | Checks if Honeycomb maintains configuration after it\ | | ... | is restarted. -| | [Tags] | honeycomb_sanity | | Given Honeycomb and VPP should verify every setting | ${node} | ${interface} | | When Honeycomb is restarted | ${node} | | Then Honeycomb and VPP should verify every setting | ${node} | ${interface} @@ -49,7 +45,6 @@ | Honeycomb persists configuration through restart of VPP | | [Documentation] | Checks if Honeycomb updates VPP settings after VPP is\ | | ... | restarted. -| | [Tags] | honeycomb_sanity | | Given Honeycomb and VPP should verify every setting | ${node} | ${interface} | | When VPP is restarted | ${node} | | Then Honeycomb and VPP should verify every setting | ${node} | ${interface} @@ -58,7 +53,25 @@ | 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] | honeycomb_sanity -| | Given Honeycomb and VPP should verify every setting | ${node} | ${interface} +| | [Teardown] | Run keyword if test failed +| | ... | Restart both systems and clear persisted configuration | ${node} +| | Given Honeycomb and VPP should not have default configuration | ${node} | | When Persistence file is damaged during restart | ${node} | | Then Honeycomb and VPP should have default configuration | ${node} + +*** Keywords *** +| Restart Honeycomb and VPP and clear persisted configuration +| | [Documentation] | Restarts Honeycomb and VPP with default configuration. +| | ... +| | ... | *Arguments:* +| | ... | - node - information about a DUT node. Type: dictionary +| | ... +| | ... | *Example:* +| | ... +| | ... | Restart both systems and clear persisted configuration \ +| | ... | \| ${nodes['DUT1']} \| +| | [Arguments] | ${node} +| | Stop Honeycomb service on DUTs | ${node} +| | Clear persisted Honeycomb configuration | ${node} +| | Setup DUT | ${node} +| | Setup Honeycomb service on DUTs | ${node}
\ No newline at end of file diff --git a/tests/suites/honeycomb/resources/persistence.py b/tests/suites/honeycomb/resources/persistence.py index d47ea662f9..f46cfba597 100644 --- a/tests/suites/honeycomb/resources/persistence.py +++ b/tests/suites/honeycomb/resources/persistence.py @@ -22,9 +22,10 @@ def get_variables(interface): :return: dictionary of test variables :rtype: dict """ - # Vlan subinterface basic settings - sub_interface_id = 10 - sub_interface_name = interface + '.' + str(sub_interface_id) + # basic settings + bd_name = 'bd_persist' + sub_if_id = 1 + sub_if_name = interface + '.' + str(sub_if_id) variables = { # VxLan settings @@ -34,7 +35,7 @@ def get_variables(interface): "vni": 88, 'encap-vrf-id': 0}, # bridge domain settings - 'bd_name': 'bd_persist', + 'bd_name': bd_name, 'bd_settings': {'flood': True, 'forward': True, 'learn': True, @@ -53,22 +54,85 @@ def get_variables(interface): 'role': 'server' }, # Vlan subinterface settings - 'sub_interface_id': sub_interface_id, - 'sub_interface_name': sub_interface_name, - 'sub_interface_base_settings': {'name': sub_interface_name, - 'type': 'v3po:sub-interface' - }, - 'sub_interface_settings': { - 'super-interface': interface, - 'identifier': sub_interface_id, - 'vlan-type': '802dot1ad', - 'number-of-tags': 2, - 'outer-id': 22, - 'inner-id': 33, - 'match-any-outer-id': False, - 'match-any-inner-id': False, - 'exact-match': True, - 'default-subif': True + 'sub_if_id': sub_if_id, + 'sub_if_name': sub_if_name, + 'sub_if_1_settings': { + "identifier": sub_if_id, + "vlan-type": "802dot1q", + "enabled": "false" + }, + 'sub_if_1_tags': [ + { + "index": "0", + "dot1q-tag": { + "tag-type": "dot1q-types:s-vlan", + "vlan-id": "100" + } + }, + { + "index": "1", + "dot1q-tag": { + "tag-type": "dot1q-types:c-vlan", + "vlan-id": "any" + } + } + ], + 'sub_if_1_match': "vlan-tagged-exact-match", + 'sub_if_1_oper': { + "identifier": sub_if_id, + "oper-status": "up", + "admin-status": "up", + "tags": { + "tag": [ + { + "index": 1, + "dot1q-tag": { + "tag-type": "dot1q-types:c-vlan", + "vlan-id": "any" + } + }, + { + "index": 0, + "dot1q-tag": { + "tag-type": "dot1q-types:s-vlan", + "vlan-id": "100" + } + } + ] + }, + "match": { + "vlan-tagged": { + "match-exact-tags": False + } + } + }, + 'sub_bd_settings': { + 'bridge-domain': bd_name, + 'split-horizon-group': '1', + 'bridged-virtual-interface': 'False' + }, + 'tag_rewrite_pop_1': { + "pop-tags": "1" + }, + + 'tag_rewrite_pop_1_oper': { + "vlan-type": "vpp-vlan:802dot1ad", + "pop-tags": 1 + }, + + 'tag_rewrite_pop_1_VAT': { + 'sub_default': 0, + 'sub_dot1ad': 0, + 'sub_exact_match': 0, + 'sub_inner_vlan_id': 0, + 'sub_inner_vlan_id_any': 1, + 'sub_number_of_tags': 2, + 'sub_outer_vlan_id': 100, + 'sub_outer_vlan_id_any': 0, + 'vtr_op': 3, + 'vtr_push_dot1q': 0, + 'vtr_tag1': 0, + 'vtr_tag2': 0 } } return variables |