aboutsummaryrefslogtreecommitdiffstats
path: root/tests/suites
diff options
context:
space:
mode:
Diffstat (limited to 'tests/suites')
-rw-r--r--tests/suites/honeycomb/7 - persistence.robot41
-rw-r--r--tests/suites/honeycomb/resources/persistence.py104
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