[PATCH v2 11/17] KVM-test: Add a subtest of pxe

Amos Kong
2010-08-23T08:50:22Z

This case just snoop tftp packet through tcpdump, it depends on public dhcp
server, better to test it through dnsmasq.

FIXME: Use dnsmasq for pxe test

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Amos Kong <akong@redhat.com>
---
0 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/client/tests/kvm/tests/pxe.py b/client/tests/kvm/tests/pxe.py
new file mode 100644
index 0000000..59b1030
--- /dev/null
+++ b/client/tests/kvm/tests/pxe.py
@@ -0,0 +1,30 @@
+import logging
+from autotest_lib.client.common_lib import error
+import kvm_subprocess, kvm_test_utils
+
+
+def run_pxe(test, params, env):
+ """
+ PXE test:
+
+ 1) Snoop the tftp packet in the tap device
+ 2) Wait for some seconds
+ 3) Check whether capture tftp packets
+
+ @param test: kvm test object
+ @param params: Dictionary with the test parameters
+ @param env: Dictionary with test environment.
+ """
+ vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
+ timeout = int(params.get("pxe_timeout", 60))
+
+ logging.info("Try to boot from pxe")
+ status, output = kvm_subprocess.run_fg("tcpdump -nli %s" % vm.get_ifname(),
+ logging.debug,
+ "(pxe) ",
+ timeout)
+
+ logging.info("Analyzing the tcpdump result...")
+ if not "tftp" in output:
+ raise error.TestFail("Couldn't find tftp packet in %s seconds" % timeout)
+ logging.info("Found tftp packet")
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index a53ab64..918d5aa 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -385,6 +385,19 @@ variants:
mgroup_count = 20
flood_minutes = 1

+ - pxe:
+ type = pxe
+ images = pxe
+ image_name_pxe = pxe-test
+ image_size_pxe = 1G
+ force_create_image_pxe = yes
+ remove_image_pxe = yes
+ extra_params += ' -boot n'
+ kill_vm_on_error = yes
+ network = bridge
+ restart_vm = yes
+ pxe_timeout = 60