From a6f5c70ef06f68e6a0d77bad3c3952b5eb970d8f Mon Sep 17 00:00:00 2001 From: Michal Cmarada Date: Tue, 4 Jun 2019 11:53:38 +0200 Subject: fix Honeycomb failing tests - due to VAT to PAPI migration some tests need to be updated - fixed HC tests: ACL, Interfaces/SubInterfaces, Tap Vhost, Vxlan, Vxlan-gpe Change-Id: I9adad041a619b48057bdda388becd53dde484483 Signed-off-by: Michal Cmarada --- .../robot/honeycomb/access_control_lists.robot | 5 +++-- resources/libraries/robot/honeycomb/interfaces.robot | 20 ++++++++++++-------- .../libraries/robot/honeycomb/sub_interface.robot | 8 ++++---- resources/libraries/robot/honeycomb/tap.robot | 4 ++-- resources/libraries/robot/honeycomb/vhost_user.robot | 4 ++-- resources/libraries/robot/honeycomb/vxlan.robot | 4 ++-- resources/libraries/robot/honeycomb/vxlan_gpe.robot | 14 +++++++------- 7 files changed, 32 insertions(+), 27 deletions(-) (limited to 'resources') diff --git a/resources/libraries/robot/honeycomb/access_control_lists.robot b/resources/libraries/robot/honeycomb/access_control_lists.robot index 37cd03c6be..e30b48e733 100644 --- a/resources/libraries/robot/honeycomb/access_control_lists.robot +++ b/resources/libraries/robot/honeycomb/access_control_lists.robot @@ -325,8 +325,9 @@ | | ... | \| ${nodes['DUT1']} \| GigabithEthernet0/8/0 \| | | [Arguments] | ${node} | ${interface} | | ${data}= | Get interface classify table | ${node} | ${interface} -| | Should be equal | ${data['l2_table_id']} | ${-1} -| | Should be equal | ${data['ip4_table_id']} | ${-1} +| | ${bitwise_non_zero}= | Convert To Integer | ${0xFFFFFFFF} +| | Should be equal | ${data['l2_table_id']} | ${bitwise_non_zero} +| | Should be equal | ${data['ip4_table_id']} | ${bitwise_non_zero} | Clear all ACL settings | | [Documentation] | Removes all ACL sessions and tables from Honeycomb\ diff --git a/resources/libraries/robot/honeycomb/interfaces.robot b/resources/libraries/robot/honeycomb/interfaces.robot index 461a49557e..7159124242 100644 --- a/resources/libraries/robot/honeycomb/interfaces.robot +++ b/resources/libraries/robot/honeycomb/interfaces.robot @@ -177,16 +177,19 @@ | | ... | - address - IP address to expect. Type: string | | ... | - prefix - prefix length to expect. Type: string | | ... | - netmask - subnet mask to expect. Type: string +| | ... | - sw_if_index - Index of interface. Type: integer | | ... | | ... | *Example:* | | ... | | ... | \| IPv4 address from VAT should be \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| 192.168.0.2 \| ${24} \| 255.255.255.0 \| | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix} | ${netmask} +| | ${sw_if_index}= | Vpp Get Interface Sw Index | ${node} | ${interface} | | ${vpp_data}= | VPP get interface ip addresses | | ... | ${node} | ${interface} | ipv4 | | ${settings}= | Create Dictionary -| | ... | ip=${address} | netmask=${netmask} | prefix_length=${prefix} +| | ... | ip=${address} | netmask=${netmask} | sw_if_index=${sw_if_index} +| | ... | prefix_length=${prefix} | is_ipv6=${0} | | Should contain | ${vpp_data} | ${settings} | Honeycomb removes interface IPv4 addresses @@ -234,9 +237,8 @@ | | ... | \| IPv4 config from VAT should be empty \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| | | [Arguments] | ${node} | ${interface} -| | Run keyword and expect error | *No JSON object could be decoded* -| | ... | VPP get interface ip addresses -| | ... | ${node} | ${interface} | ipv4 +| | ${data}= | VPP get interface ip addresses | ${node} | ${interface} | ipv4 +| | Should be empty | ${data} | Honeycomb adds interface IPv4 neighbor | | [Documentation] | Uses Honeycomb API to assign an ipv4 neighbor to the\ @@ -393,16 +395,19 @@ | | ... | - interface - name of an interface on the specified node. Type: string | | ... | - address - IP address to expect. Type: string | | ... | - prefix - length of subnet prefix to expect. Type: string +| | ... | - sw_if_index - index of interface. Type: integer | | ... | | ... | *Example:* | | ... | | ... | \| IPv6 address from VAT should contain \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| 10::10 \| 64 \| | | [Arguments] | ${node} | ${interface} | ${address} | ${prefix} +| | ${sw_if_index}= | Vpp Get Interface Sw Index | ${node} | ${interface} | | ${vpp_data}= | VPP get interface ip addresses | | ... | ${node} | ${interface} | ipv6 | | ${settings}= | Create Dictionary -| | ... | ip=${address} | prefix_length=${prefix} +| | ... | ip=${address} | sw_if_index=${sw_if_index} | prefix_length=${prefix} +| | ... | is_ipv6=${1} | | Should contain | ${vpp_data} | ${settings} | Honeycomb removes interface IPv6 addresses @@ -450,9 +455,8 @@ | | ... | \| IPv6 config from VAT should be empty \| ${nodes['DUT1']} \ | | ... | \| GigabitEthernet0/8/0 \| | | [Arguments] | ${node} | ${interface} -| | Run keyword and expect error | *No JSON object could be decoded* -| | ... | VPP get interface ip addresses -| | ... | ${node} | ${interface} | ipv6 +| | ${data}= | VPP get interface ip addresses | ${node} | ${interface} | ipv6 +| | Should be empty | ${data} | Honeycomb adds interface IPv6 neighbor | | [Documentation] | Uses Honeycomb API to assign an ipv6 neighbor to the\ diff --git a/resources/libraries/robot/honeycomb/sub_interface.robot b/resources/libraries/robot/honeycomb/sub_interface.robot index a7f739b1b0..6e60b23c37 100644 --- a/resources/libraries/robot/honeycomb/sub_interface.robot +++ b/resources/libraries/robot/honeycomb/sub_interface.robot @@ -546,9 +546,9 @@ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0.1 \| | | ... | | [Arguments] | ${node} | ${sub_interface} -| | Run keyword and expect error | *No JSON object could be decoded* -| | ... | VPP get interface ip addresses +| | ${data}= | VPP get interface ip addresses | | ... | ${node} | ${sub_interface} | ipv4 +| | Should be empty | ${data} | Honeycomb sets sub-interface ipv6 address | | [Documentation] | Uses Honeycomb API to configure an ipv6 address on the\ @@ -664,6 +664,6 @@ | | ... | \| ${nodes['DUT1']} \| GigabitEthernet0/8/0.1 \| | | ... | | [Arguments] | ${node} | ${sub_interface} -| | Run keyword and expect error | *No JSON object could be decoded* -| | ... | VPP get interface ip addresses +| | ${data}= | VPP get interface ip addresses | | ... | ${node} | ${sub_interface} | ipv6 +| | Should be empty | ${data} diff --git a/resources/libraries/robot/honeycomb/tap.robot b/resources/libraries/robot/honeycomb/tap.robot index 8a80c4d555..37d6a02f52 100644 --- a/resources/libraries/robot/honeycomb/tap.robot +++ b/resources/libraries/robot/honeycomb/tap.robot @@ -140,5 +140,5 @@ | | ... | \| ${nodes['DUT1']} \| tap_int1 \| | | ... | | [Arguments] | ${node} | ${interface} -| | Run Keyword And Expect Error | ValueError: No JSON object could be decoded -| | ... | TAP Dump | ${node} | ${interface} +| | ${data}= | TAP Dump | ${node} | ${interface} +| | Should be empty | ${data} diff --git a/resources/libraries/robot/honeycomb/vhost_user.robot b/resources/libraries/robot/honeycomb/vhost_user.robot index 0c662993b4..d60917703f 100644 --- a/resources/libraries/robot/honeycomb/vhost_user.robot +++ b/resources/libraries/robot/honeycomb/vhost_user.robot @@ -140,8 +140,8 @@ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | Run Keyword And Expect Error | ValueError: No JSON object could be decoded -| | ... | vhost user Dump | ${node} +| | ${data}= | vhost user Dump | ${node} +| | Should be empty | ${data} | Honeycomb fails setting vhost-user on different interface type | | [Documentation] | Attempts to set vhost-user settings on an ethernet\ diff --git a/resources/libraries/robot/honeycomb/vxlan.robot b/resources/libraries/robot/honeycomb/vxlan.robot index ed21d192c8..951a0d109c 100644 --- a/resources/libraries/robot/honeycomb/vxlan.robot +++ b/resources/libraries/robot/honeycomb/vxlan.robot @@ -127,8 +127,8 @@ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | Run Keyword And Expect Error | ValueError: No JSON object could be decoded -| | ... | VxLAN Dump | ${node} +| | ${data}= | VxLAN Dump | ${node} +| | Should be empty | ${data} | Honeycomb fails setting VxLan on different interface type | | [Documentation] | Attempts to set VxLAN settings on an ethernet\ diff --git a/resources/libraries/robot/honeycomb/vxlan_gpe.robot b/resources/libraries/robot/honeycomb/vxlan_gpe.robot index 2f2cfc50b4..20ca7f5f1a 100644 --- a/resources/libraries/robot/honeycomb/vxlan_gpe.robot +++ b/resources/libraries/robot/honeycomb/vxlan_gpe.robot @@ -114,7 +114,8 @@ | | ... | | [Arguments] | ${node} | ${interface} | ${vxlan_gpe_params} | | ... -| | ${vat_data}= | VxLAN GPE Dump | ${node} | ${interface} +| | ${if1}= | Vpp Get Interface Sw Index | ${node} | ${interface} +| | ${vat_data}= | VxLAN GPE Dump | ${node} | ${if1} | | Should be equal as strings | | ... | ${vat_data['local']} | ${vxlan_gpe_params['local']} | | Should be equal as strings @@ -125,8 +126,7 @@ | | ... | ${vat_data['encap_vrf_id']} | ${vxlan_gpe_params['encap-vrf-id']} | | Should be equal as strings | | ... | ${vat_data['decap_vrf_id']} | ${vxlan_gpe_params['decap-vrf-id']} -# VAT dump multiplies protocol value by 16777216 -| | Should be equal as strings | ${vat_data['protocol']/16777216} +| | Should be equal as strings | ${vat_data['protocol']} | | ... | ${protocols['${vxlan_gpe_params['next-protocol']}']} | VxLAN GPE Interface indices from Honeycomb and VAT should correspond @@ -147,7 +147,8 @@ | | [Arguments] | ${node} | ${interface} | | ... | | ${api_data}= | Get interface oper data | ${node} | ${interface} -| | ${vat_data}= | VxLAN GPE Dump | ${node} | ${interface} +| | ${if1}= | Vpp Get Interface Sw Index | ${node} | ${interface} +| | ${vat_data}= | VxLAN GPE Dump | ${node} | ${if1} | | ${sw_if_index}= | EVALUATE | ${vat_data['sw_if_index']} + 1 | | Should be equal as strings | | ... | ${api_data['if-index']} | ${sw_if_index} @@ -180,9 +181,8 @@ | | ... | \| ${nodes['DUT1']} \| | | ... | | [Arguments] | ${node} -| | ... -| | Run Keyword And Expect Error | ValueError: No JSON object could be decoded -| | ... | VxLAN Dump | ${node} +| | ${data}= | VxLAN Dump | ${node} +| | Should be empty | ${data} | Honeycomb fails to create VxLAN GPE interface | | [Documentation] | Uses Honeycomb API to configure a VxLAN tunnel with wrong\ -- cgit 1.2.3-korg