Convert functional tests to statefull QemuUtils 22/18422/8
authorPeter Mikus <pmikus@cisco.com>
Wed, 20 Mar 2019 13:21:26 +0000 (13:21 +0000)
committerPeter Mikus <pmikus@cisco.com>
Thu, 21 Mar 2019 10:58:14 +0000 (10:58 +0000)
Change-Id: Ia1b9120c45733db64dc2dc8b03cff5ef5f167548
Signed-off-by: Peter Mikus <pmikus@cisco.com>
20 files changed:
resources/libraries/robot/l2/l2_bridge_domain.robot
resources/libraries/robot/shared/default.robot
resources/libraries/robot/vm/qemu.robot
tests/vpp/device/vm_vhost/ip4/eth2p-ethip4-ip4base-eth-2vhost-1vm-dev.robot
tests/vpp/device/vm_vhost/ip6/eth2p-ethip6-ip6base-eth-2vhost-1vm-dev.robot
tests/vpp/device/vm_vhost/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-dev.robot
tests/vpp/device/vm_vhost/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-dev.robot
tests/vpp/func/crypto/default/eth2p-ethip4ipsectptlispgpe-ip4base-func.robot
tests/vpp/func/crypto/default/eth2p-ethip4ipsectptlispgpe-ip6base-func.robot
tests/vpp/func/crypto/default/eth2p-ethip4ipsectptlispgpe-ip6basevrf-func.robot
tests/vpp/func/crypto/default/eth2p-ethip6ipsectptlispgpe-ip4base-func.robot
tests/vpp/func/crypto/default/eth2p-ethip6ipsectptlispgpe-ip6base-func.robot
tests/vpp/func/vm_vhost/ip4/eth2p-ethip4-ip4base-eth-2vhost-1vm.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-dot1q-l2bdbasemaclrn-eth-2vhost-1vm-func.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-eth-l2bdbasemaclrn-eth-2vhost-1vm-func.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-eth-l2bdbasemacstc-eth-2vhost-1vm-func.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-ethip4-l2bdbase-vhost-client-reconnect-2vm-func.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-ethip4vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot
tests/vpp/func/vm_vhost/l2bd/eth2p-ethip6vxlan-l2bdbasemaclrn-eth-2vhost-1vm-func.robot
tests/vpp/func/vm_vhost/l2xc/eth2p-eth-l2xcbase-eth-2vhost-1vm-func.robot

index 3d6f483..b69d449 100644 (file)
 | | ... | \| Configure VM for vhost L2BD forwarding \| ${nodes['DUT2']} \
 | | ... | \| /tmp/sock1 \| /tmp/sock2 \| qemu_instance_2 \|
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${qemu_name}=vm_node
-| | Run Keyword Unless | "${qemu_name}" == "vm_node" | Import Library
-| | ... | resources.libraries.python.QemuUtils | WITH NAME | ${qemu_name}
+| | Import Library | resources.libraries.python.QemuUtils | node=${dut_node} |
+| | ... | WITH NAME | ${qemu_name}
 | | Set Test Variable | ${${qemu_name}} | ${None}
-| | ${qemu_set_node}= | Run Keyword If | "${qemu_name}" == "vm_node"
-| | | ...                              | Set Variable | Qemu Set Node
-| | ... | ELSE | Replace Variables | ${qemu_name}.Qemu Set Node
-| | Run keyword | ${qemu_set_node} | ${dut_node}
-| | ${qemu_add_vhost}= | Run Keyword If | "${qemu_name}" == "vm_node"
-| | | ...                               | Set Variable | Qemu Add Vhost User If
-| | ... | ELSE | Replace Variables | ${qemu_name}.Qemu Add Vhost User If
-| | Run keyword | ${qemu_add_vhost} | ${sock1}
-| | Run keyword | ${qemu_add_vhost} | ${sock2}
-| | ${qemu_start}= | Run Keyword If | "${qemu_name}" == "vm_node"
-| | | ...                           | Set Variable | Qemu Start
-| | ... | ELSE | Replace Variables | ${qemu_name}.Qemu Start
-| | ${vm}= | Run keyword | ${qemu_start}
+| | Run Keyword  | ${qemu_name}.Qemu Add Vhost User If | ${sock1}
+| | Run Keyword  | ${qemu_name}.Qemu Add Vhost User If | ${sock2}
+| | ${vm}= | Run keyword | ${qemu_name}.Qemu Start
 | | ${br}= | Set Variable | br0
 | | ${vhost1}= | Get Vhost User If Name By Sock | ${vm} | ${sock1}
 | | ${vhost2}= | Get Vhost User If Name By Sock | ${vm} | ${sock2}
index 6d99b95..954f881 100644 (file)
 | | Show Vpp Settings | ${nodes['DUT1']}
 | | Show Vpp Settings | ${nodes['DUT2']}
 | | Vpp Show Errors On All DUTs | ${nodes}
-| | Stop and clear QEMU | ${nodes['DUT1']}
+| | Tear down QEMU
 | | Verify VPP PID in Teardown
 
 | Set up TAP functional test
 | | [Arguments] | ${dut1_node} | ${dut2_node}
 | | ...
 | | Tear down functional test
-| | Tear down QEMU | ${dut1_node} | qemu_node1
-| | Tear down QEMU | ${dut2_node} | qemu_node2
+| | Tear down QEMU | qemu_node1
+| | Tear down QEMU | qemu_node2
 
 | Tear down functional test with container
 | | [Documentation]
index 528b7fb..765a6cf 100644 (file)
@@ -12,7 +12,6 @@
 # limitations under the License.
 *** Settings ***
 | Library | resources.libraries.python.IPUtil
-| Library | resources.libraries.python.QemuUtils
 
 *** Keywords ***
 | Configure QEMU vhost and run it
@@ -44,7 +43,7 @@
 | | ...
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${sock3} | ${sock4}
 | | ... | ${ip1} | ${ip2} | ${ip3} | ${ip4} | ${prefix_length}
-| | ... | ${qemu_name} | ${mac_ID}=${None}
+| | ... | ${qemu_name}=vm_node | ${mac_ID}=${None}
 | | ...
 | | Import Library | resources.libraries.python.QemuUtils \
 | | ... | node=${dut_node} | WITH NAME | ${qemu_name}
 
 | Tear down QEMU
 | | [Documentation]
-| | ... | Stop specific qemu instance running on ${dut_node}.
+| | ... | Stop specific qemu instance running on DUT.
 | | ...
 | | ... | *Arguments:*
-| | ... | - dut_node - Node where to clean qemu. Type: dict
 | | ... | - qemu_name - Qemu instance by name. Type: string
 | | ...
 | | ... | *Example:*
 | | ...
-| | ... | \| Tear down QEMU \| ${node['DUT1']} \| qemu_node_1 \|
+| | ... | \| Tear down QEMU \| qemu_node_1 \|
 | | ...
-| | [Arguments] | ${dut_node} | ${qemu_name}
+| | [Arguments] | ${qemu_name}=vm_node
 | | ...
-| | Run Keyword | ${qemu_name}.Qemu Set Node | ${dut_node}
 | | Run Keyword | ${qemu_name}.Qemu Kill
-
-| Stop and clear QEMU
-| | [Documentation]
-| | ... | Stop QEMU, clear used sockets running on ${dut}.
-| | ...
-| | ... | *Arguments:*
-| | ... | - dut_node - Node where to clean qemu. Type: dict
-| | ...
-| | ... | *Example:*
-| | ...
-| | ... | \| Tear down QEMU \| ${node['DUT1']} \|
-| | ...
-| | [Arguments] | ${dut}
-| | ...
-| | Qemu Set Node | ${dut}
-| | Qemu Kill
index 50aa282..e97e791 100644 (file)
@@ -32,7 +32,7 @@
 | Test Setup | Set up VPP device test
 | ...
 | Test Teardown | Run Keywords
-| ... | Stop and clear QEMU | ${dut_node}
+| ... | Tear down QEMU
 | ... | AND | Tear down VPP device test
 | ...
 | Documentation | *IPv4 routing test cases with vhost user interface*
index 91808fe..48070e9 100644 (file)
@@ -32,7 +32,7 @@
 | Test Setup | Set up VPP device test
 | ...
 | Test Teardown | Run Keywords
-| ... | Stop and clear QEMU | ${dut_node}
+| ... | Tear down QEMU
 | ... | AND | Tear down VPP device test
 | ...
 | Documentation | *IPv4 routing test cases with vhost user interface*
index e124675..b270004 100644 (file)
@@ -23,7 +23,7 @@
 | Test Setup | Set up VPP device test
 | ...
 | Test Teardown | Run Keywords
-| ... | Stop and clear QEMU | ${dut_node}
+| ... | Tear down QEMU
 | ... | AND | Tear down VPP device test
 | ...
 | Documentation | *L2 bridge-domain test cases with vhost user interface*
index 91b8d58..b182b01 100644 (file)
@@ -27,7 +27,7 @@
 | Test Setup | Set up VPP device test
 | ...
 | Test Teardown | Run Keywords
-| ... | Stop and clear QEMU | ${dut_node}
+| ... | Tear down QEMU
 | ... | AND | Tear down VPP device test
 | ...
 | Documentation | *L2 cross-connect test cases with vhost user interface*
index 15c10d4..0f79d15 100644 (file)
@@ -16,8 +16,6 @@
 | Library | resources.libraries.python.NodePath
 | Library | resources.libraries.python.Trace
 | Library | resources.libraries.python.LispUtil
-| Library | resources.libraries.python.VhostUser
-| Library | resources.libraries.python.QemuUtils
 | Library | resources.libraries.python.VPPUtil
 | Library | resources.libraries.python.IPsecUtil
 | Resource | resources/libraries/robot/shared/traffic.robot
index 550c940..29d8fc7 100644 (file)
@@ -21,8 +21,6 @@
 | Library | resources.libraries.python.IPsecUtil
 | Library | resources.libraries.python.VatJsonUtil
 | Library | resources.libraries.python.IPv6Setup
-| Library | resources.libraries.python.VhostUser
-| Library | resources.libraries.python.QemuUtils
 | Library | resources.libraries.python.VPPUtil
 | Library | String
 | Resource | resources/libraries/robot/shared/traffic.robot
index 8c13118..718ac04 100644 (file)
@@ -21,8 +21,6 @@
 | Library | resources.libraries.python.IPsecUtil
 | Library | resources.libraries.python.VatJsonUtil
 | Library | resources.libraries.python.IPv6Setup
-| Library | resources.libraries.python.VhostUser
-| Library | resources.libraries.python.QemuUtils
 | Library | resources.libraries.python.VPPUtil
 | Library | String
 | Resource | resources/libraries/robot/shared/traffic.robot
@@ -31,7 +29,6 @@
 | Resource | resources/libraries/robot/shared/testing_path.robot
 | Resource | resources/libraries/robot/ip/ip6.robot
 | Resource | resources/libraries/robot/crypto/ipsec.robot
-| Resource | resources/libraries/robot/vm/qemu.robot
 | Resource | resources/libraries/robot/overlay/lispgpe.robot
 | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot
 # Import configuration and test data:
index f3bc2e2..725db21 100644 (file)
@@ -21,8 +21,6 @@
 | Library | resources.libraries.python.IPsecUtil
 | Library | resources.libraries.python.VatJsonUtil
 | Library | resources.libraries.python.IPv6Setup
-| Library | resources.libraries.python.VhostUser
-| Library | resources.libraries.python.QemuUtils
 | Library | String
 | Resource | resources/libraries/robot/shared/traffic.robot
 | Resource | resources/libraries/robot/shared/default.robot
@@ -30,7 +28,6 @@
 | Resource | resources/libraries/robot/shared/testing_path.robot
 | Resource | resources/libraries/robot/ip/ip6.robot
 | Resource | resources/libraries/robot/crypto/ipsec.robot
-| Resource | resources/libraries/robot/vm/qemu.robot
 | Resource | resources/libraries/robot/overlay/lispgpe.robot
 | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot
 # Import configuration and test data:
index ca81b42..b0454dd 100644 (file)
@@ -22,8 +22,6 @@
 | Library | resources.libraries.python.IPsecUtil
 | Library | resources.libraries.python.VatJsonUtil
 | Library | resources.libraries.python.IPv6Setup
-| Library | resources.libraries.python.VhostUser
-| Library | resources.libraries.python.QemuUtils
 | Library | String
 | Resource | resources/libraries/robot/shared/traffic.robot
 | Resource | resources/libraries/robot/shared/default.robot
@@ -31,7 +29,6 @@
 | Resource | resources/libraries/robot/shared/testing_path.robot
 | Resource | resources/libraries/robot/ip/ip6.robot
 | Resource | resources/libraries/robot/crypto/ipsec.robot
-| Resource | resources/libraries/robot/vm/qemu.robot
 | Resource | resources/libraries/robot/overlay/lispgpe.robot
 | Resource | resources/libraries/robot/l2/l2_bridge_domain.robot
 # Import configuration and test data:
index a30d7cd..057b5b9 100644 (file)
@@ -59,7 +59,7 @@
 | | ... | Both have IP addresses from same network. On VM is set bridge to pass
 | | ... | packet from a one vhost user interface to another one.
 | | [Teardown] | Run Keywords
-| | ... | Stop and clear QEMU | ${dut_node} | AND
+| | ... | Tear down QEMU | AND
 | | ... | Tear down functional test
 | |
 | | Given Configure path in 2-node circular topology
index 7895fa1..071aa79 100644 (file)
@@ -21,7 +21,7 @@
 | Force Tags | 3_NODE_DOUBLE_LINK_TOPO | HW_ENV | VM_ENV | VPP_VM_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords  | Tear down functional test
-| ... | AND | Stop and clear QEMU | ${dut_node}
+| ... | AND | Tear down QEMU
 | Documentation | *L2 bridge domain with VLAN tag over VM test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG=DUT 2-node circular topology
index 38195c3..b1626ae 100644 (file)
@@ -19,7 +19,7 @@
 | Force Tags | 3_NODE_DOUBLE_LINK_TOPO | HW_ENV | VM_ENV | VPP_VM_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords  | Tear down functional test
-| ... | AND | Stop and clear QEMU | ${dut_node}
+| ... | AND | Tear down QEMU
 | Documentation | *L2 bridge-domain test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG=DUT=VM 3-node topology with VM
index 5242938..5b6b73a 100644 (file)
@@ -19,7 +19,7 @@
 | Force Tags | 3_NODE_DOUBLE_LINK_TOPO | HW_ENV | VM_ENV | VPP_VM_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords  | Tear down functional test
-| ... | AND | Stop and clear QEMU | ${dut_node}
+| ... | AND | Tear down QEMU
 | Documentation | *L2 bridge-domain test cases*
 | ...
 | ... | *[Top] Network Topologies:* TG=DUT=VM 3-node topology with VM
index 6a65d04..ec2a82b 100644 (file)
@@ -20,7 +20,8 @@
 | Force Tags | HW_ENV | VM_ENV | 3_NODE_DOUBLE_LINK_TOPO | VPP_VM_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords
-| ... | resources.libraries.python.QemuUtils.Qemu Kill All | ${dut_node} | AND
+| ... | qemu-1.Qemu Kill | AND
+| ... | qemu-2.Qemu Kill | AND
 | ... | Tear down functional test
 | Documentation | *Vhost-User Interface Traffic Tests*
 | ... | *[Top] Network Topologies:* TG=DUT1 2-node topology with two links
 *** Keywords ***
 | Configure QEMU vhost and run it VM
 | | [Arguments] | ${dut_node} | ${sock1} | ${sock2} | ${qemu_id}
-| | Import Library | resources.libraries.python.QemuUtils | qemu_id=${qemu_id}
-| | ... | WITH NAME | qemu-${qemu_id}
-| | ${q_add_vhost}= | Replace Variables | qemu-${qemu_id}.Qemu Add Vhost User If
-| | ${q_set_node}= | Replace Variables | qemu-${qemu_id}.Qemu Set Node
-| | ${q_start}= | Replace Variables | qemu-${qemu_id}.Qemu Start
-| | Run keyword | ${q_set_node} | ${dut_node}
-| | Run keyword | ${q_add_vhost} | ${sock1}
-| | Run keyword | ${q_add_vhost} | ${sock2}
-| | ${vm}= | Run keyword | ${q_start}
+| | Import Library | resources.libraries.python.QemuUtils | node=${dut_node} |
+| | ... | qemu_id=${qemu_id} | WITH NAME | qemu-${qemu_id}
+| | Run keyword | qemu-${qemu_id}.Qemu Add Vhost User If | ${sock1}
+| | Run keyword | qemu-${qemu_id}.Qemu Add Vhost User If | ${sock2}
+| | ${vm}= | Run keyword | qemu-${qemu_id}.Qemu Start
 | | ${vhost1}= | Get Vhost User If Name By Sock | ${vm} | ${sock1}
 | | ${vhost2}= | Get Vhost User If Name By Sock | ${vm} | ${sock2}
 | | Linux Add Bridge | ${vm} | br0 | ${vhost1} | ${vhost2}
index 27691fe..73b6e41 100644 (file)
@@ -20,8 +20,8 @@
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | HW_ENV | VPP_VM_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords | Tear down functional test
-| ... | AND | Run keyword | Tear down QEMU | ${dut1_node} | ${qemu1}
-| ... | AND | Run keyword | Tear down QEMU | ${dut2_node} | ${qemu2}
+| ... | AND | Run keyword | Tear down QEMU | ${qemu1}
+| ... | AND | Run keyword | Tear down QEMU | ${qemu2}
 | Documentation | *L2BD with VM combined with VXLAN test cases - IPv4*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1-DUT2-TG 3-node circular topology
index c7b905d..f99994a 100644 (file)
@@ -21,8 +21,8 @@
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | VM_ENV | HW_ENV
 | Test Setup | Set up functional test
 | Test Teardown | Run Keywords | Tear down functional test
-| ... | AND | Run keyword | Tear down QEMU | ${dut1_node} | ${qemu1}
-| ... | AND | Run keyword | Tear down QEMU | ${dut2_node} | ${qemu2}
+| ... | AND | Run keyword | Tear down QEMU | ${qemu1}
+| ... | AND | Run keyword | Tear down QEMU | ${qemu2}
 | Documentation | *L2BD with VM combined with VXLAN test cases - IPv6*
 | ...
 | ... | *[Top] Network topologies:* TG-DUT1-DUT2-TG 3-node circular topology
index bebdf71..2b46b39 100644 (file)
@@ -51,7 +51,7 @@
 | | ... | i/fs to be switched by DUT to and from VM; verify all packets
 | | ... | are received. [Ref]
 | | ...
-| | [Teardown] | Run Keywords | Stop and clear QEMU | ${dut_node}
+| | [Teardown] | Run Keywords | Tear down QEMU
 | | ... | AND | Tear down functional test
 | | ...
 | | Given Configure path in 2-node circular topology
@@ -75,7 +75,7 @@
 | | ... | be switched by DUT to and from VM; verify all packets are
 | | ... | received. [Ref]
 | | ...
-| | [Teardown] | Run Keywords | Stop and clear QEMU | ${dut_node}
+| | [Teardown] | Run Keywords | Tear down QEMU
 | | ... | AND | Tear down functional test
 | | ...
 | | Given Configure path in 2-node circular topology

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.