Re: [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe

Lucas Meneghel Rodrigues
2010-07-28T22:07:34Z

On Tue, 2010-07-20 at 09:36 +0800, Amos Kong wrote:
> This case just snoop tftp packet through tcpdump, it depends on public dhcp
> server, better to test it through dnsmasq.

It would be a good idea to have an alternate implementation using
dnsmasq, but not urgent.

> 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..8859aaa
> --- /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, kvm_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)

^ The only complaint I could make here is that since this command
doesn't need to live throughout tests, utils.run would do just fine.
Other than that, looks fine to me.

> + logging.info("Analysing the tcpdump result...")

^ typo, analyzing

> + 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 9594a38..5515601 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -381,6 +381,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}'
>
>