From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=41543 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oii42-0001Cu-PG for qemu-devel@nongnu.org; Tue, 10 Aug 2010 02:11:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Oii41-0001Qi-AP for qemu-devel@nongnu.org; Tue, 10 Aug 2010 02:11:54 -0400 Received: from mx1.redhat.com ([209.132.183.28]:57060) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Oii41-0001Q7-3E for qemu-devel@nongnu.org; Tue, 10 Aug 2010 02:11:53 -0400 Date: Tue, 10 Aug 2010 14:11:47 +0800 From: Amos Kong Subject: Re: [Qemu-devel] [RFC PATCH 10/14] KVM-test: Add a subtest of pxe Message-ID: <20100810061146.GA6761@z> References: <20100720013414.2212.13476.stgit@z> <20100720013616.2212.34704.stgit@z> <1280354854.2578.310.camel@freedom> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1280354854.2578.310.camel@freedom> Reply-To: Amos Kong List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Lucas Meneghel Rodrigues Cc: autotest@test.kernel.org, qemu-devel@nongnu.org, kvm@vger.kernel.org On Wed, Jul 28, 2010 at 07:07:34PM -0300, Lucas Meneghel Rodrigues wrote: > 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. I changed unattended_install to use dnsmasq, but it was blocked by a pxe bug. Also need completed test, we can add this later. > > Signed-off-by: Jason Wang > > Signed-off-by: Amos Kong > > --- > > 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. utils.run() desen't support timeout, tcpdump would not stop by itself. also could not add output prefix "(pxe) " ? > > + 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}' > > > > > >