From 7ea7ab5f215a95dbc1a38acc03b7fea6d3dbedcf Mon Sep 17 00:00:00 2001 From: Naveen Joy Date: Tue, 11 May 2021 10:31:18 -0700 Subject: tests: run a test inside a QEMU VM Use the script test/run.py to run a test named test_vm_tap inside a QEMU VM. The run script builds out a virtual env, launches a light weight QEMU VM, mounts host directories, starts VPP inside the VM and runs the test. The test named test_vm_tap, creates two tap v2 interfaces in separate Linux namespaces and using iPerf, streams traffic between the VM and VPP. All data files are stored in the directory named /tmp/vpp-vm-tests. To clean up, use the make test-wipe command. Usage: test/run.py --vm --debug --test test_vm_tap Type: improvement Change-Id: I4425dbef52acee1e5b8af5acaa169b89a2c0f171 Signed-off-by: Naveen Joy --- test/vpp_qemu_utils.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 test/vpp_qemu_utils.py (limited to 'test/vpp_qemu_utils.py') diff --git a/test/vpp_qemu_utils.py b/test/vpp_qemu_utils.py new file mode 100644 index 00000000000..50fc1c865a6 --- /dev/null +++ b/test/vpp_qemu_utils.py @@ -0,0 +1,20 @@ +#!/usr/bin/env python + +# Utility functions for QEMU tests ## + +import subprocess + + +def create_namespace(ns): + try: + subprocess.run(["ip", "netns", "add", ns]) + except subprocess.CalledProcessError as e: + raise Exception("Error creating namespace:", e.output) + + +def list_namespace(ns): + """List the IP address of a namespace""" + try: + subprocess.run(["ip", "netns", "exec", ns, "ip", "addr"]) + except subprocess.CalledProcessError as e: + raise Exception("Error listing namespace IP:", e.output) -- cgit 1.2.3-korg