From: Amos Kong <akong@xxxxxxxxxx> 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@xxxxxxxxxx> Signed-off-by: Amos Kong <akong@xxxxxxxxxx> --- client/tests/kvm/tests/pxe.py | 31 +++++++++++++++++++++++++++++++ client/tests/kvm/tests_base.cfg.sample | 13 +++++++++++++ 2 files changed, 44 insertions(+), 0 deletions(-) create mode 100644 client/tests/kvm/tests/pxe.py diff --git a/client/tests/kvm/tests/pxe.py b/client/tests/kvm/tests/pxe.py new file mode 100644 index 0000000..ec9a549 --- /dev/null +++ b/client/tests/kvm/tests/pxe.py @@ -0,0 +1,31 @@ +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 we could 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 capture) ", + timeout) + + logging.info("Analyzing the tcpdump result...") + if not "tftp" in output: + raise error.TestFail("Couldn't find any TFTP packets after %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 f493cdb..b8b7662 100644 --- a/client/tests/kvm/tests_base.cfg.sample +++ b/client/tests/kvm/tests_base.cfg.sample @@ -500,6 +500,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 + - physical_resources_check: install setup unattended_install.cdrom type = physical_resources_check catch_uuid_cmd = dmidecode | awk -F: '/UUID/ {print $2}' -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html