fix Honeycomb failing tests 36/19936/4
authorMichal Cmarada <mcmarada@cisco.com>
Tue, 4 Jun 2019 09:53:38 +0000 (11:53 +0200)
committerPeter Mikus <pmikus@cisco.com>
Tue, 4 Jun 2019 12:07:28 +0000 (12:07 +0000)
 - 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 <mcmarada@cisco.com>
resources/libraries/robot/honeycomb/access_control_lists.robot
resources/libraries/robot/honeycomb/interfaces.robot
resources/libraries/robot/honeycomb/sub_interface.robot
resources/libraries/robot/honeycomb/tap.robot
resources/libraries/robot/honeycomb/vhost_user.robot
resources/libraries/robot/honeycomb/vxlan.robot
resources/libraries/robot/honeycomb/vxlan_gpe.robot
tests/honeycomb/func/mgmt-cfg-intip4-intip6-apihc-apivat-func.robot

index 37cd03c..e30b48e 100644 (file)
 | | ... | \| ${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\
index 461a495..7159124 100644 (file)
 | | ... | - 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
 | | ... | \| 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\
 | | ... | - 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
 | | ... | \| 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\
index a7f739b..6e60b23 100644 (file)
 | | ... | \| ${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\
 | | ... | \| ${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}
index 8a80c4d..37d6a02 100644 (file)
 | | ... | \| ${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}
index 0c66299..d609177 100644 (file)
 | | ... | \| ${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\
index ed21d19..951a0d1 100644 (file)
 | | ... | \| ${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\
index 2f2cfc5..20ca7f5 100644 (file)
 | | ...
 | | [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
 | | ... | ${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
 | | [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}
 | | ... | \| ${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\
index 50fd656..28137fd 100644 (file)
@@ -14,7 +14,8 @@
 *** Variables ***
 # Interface to run tests on.
 | ${interface}= | ${node['interfaces']['port1']['name']}
-| ${interface2}= | ${node['interfaces']['port3']['name']}
+| ${interface2}= | ${node['interfaces']['port2']['name']}
+| ${interface3}= | ${node['interfaces']['port3']['name']}
 
 *** Settings ***
 | Resource | resources/libraries/robot/shared/default.robot
 | | ... | ${node} | ${interface} | ${ethernet}
 | | Then Interface ethernet Operational Data From Honeycomb Should Be
 | | ... | ${node} | ${interface} | ${ethernet}
+| | ${mtu}= | Create List | ${ethernet['mtu']} | ${0} | ${0} | ${0}
 | | And Interface ethernet Operational Data From VAT Should Be
-| | ... | ${node} | ${interface} | ${ethernet['mtu']}
+| | ... | ${node} | ${interface} | ${mtu}
 
 | TC09: Honeycomb modifies interface configuration - vrf
 | | [Documentation] | Check if Honeycomb API can configure interface\
 | | Then IPv4 address from Honeycomb should be
 | | ... | ${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}
+| | ... | ${dut_node} | ${interface2} | ${ipv4_address}
 | | ... | ${ipv4_prefix} | ${ipv4_mask}
 | | And IPv6 address from Honeycomb should contain
 | | ... | ${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} | ${ipv6_prefix}
+| | ... | ${dut_node} | ${interface2} | ${ipv6_address} | ${ipv6_prefix}
 | | And Honeycomb configures interface state
 | | ... | ${dut_node} | ${dut_to_tg_if1} | up
 | | And Honeycomb adds interface IPv4 neighbor | ${dut_node} | ${dut_to_tg_if1}
 | | [Tags] | EXPECTED_FAILING
 | | ...
 | | Given Honeycomb sets interface IPv4 address | ${node}
-| | ... | ${interface2} | ${ipv4_address} | ${ipv4_prefix}
+| | ... | ${interface3} | ${ipv4_address} | ${ipv4_prefix}
 | | When Honeycomb adds unnumbered configuration to interface
-| | ... | ${node} | ${interface} | ${interface2}
+| | ... | ${node} | ${interface} | ${interface3}
 | | Then Wait until Keyword succeeds | 10s | 2s
 | | ... | IPv4 address from Honeycomb should be
-| | ... | ${node} | ${interface2} | ${ipv4_address} | ${ipv4_prefix}
+| | ... | ${node} | ${interface3} | ${ipv4_address} | ${ipv4_prefix}
 | | And IPv4 address from VAT should be
-| | ... | ${node} | ${interface2} | ${ipv4_address}
+| | ... | ${node} | ${interface3} | ${ipv4_address}
 | | ... | ${ipv4_prefix} | ${ipv4_mask}
 | | And IPv4 address from Honeycomb should be
 | | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
 | | [Tags] | EXPECTED_FAILING
 | | ...
 | | Given IPv4 address from Honeycomb should be
-| | ... | ${node} | ${interface2} | ${ipv4_address} | ${ipv4_prefix}
+| | ... | ${node} | ${interface3} | ${ipv4_address} | ${ipv4_prefix}
 | | And IPv4 address from VAT should be
-| | ... | ${node} | ${interface2} | ${ipv4_address}
+| | ... | ${node} | ${interface3} | ${ipv4_address}
 | | ... | ${ipv4_prefix} | ${ipv4_mask}
 | | And IPv4 address from Honeycomb should be
 | | ... | ${node} | ${interface} | ${ipv4_address} | ${ipv4_prefix}
 | | ... | ${node} | ${interface}
 | | Then Wait until Keyword succeeds | 10s | 2s
 | | ... | IPv4 address from Honeycomb should be
-| | ... | ${node} | ${interface2} | ${ipv4_address} | ${ipv4_prefix}
+| | ... | ${node} | ${interface3} | ${ipv4_address} | ${ipv4_prefix}
 | | And IPv4 address from VAT should be
-| | ... | ${node} | ${interface2} | ${ipv4_address}
+| | ... | ${node} | ${interface3} | ${ipv4_address}
 | | ... | ${ipv4_prefix} | ${ipv4_mask}
 | | And IPv4 address from Honeycomb should be empty | ${node} | ${interface}
 | | And ipv4 address from VAT should be empty | ${node} | ${interface}