qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Automated testing of block/gluster.c with upstream Glus


From: Niels de Vos
Subject: Re: [Qemu-devel] Automated testing of block/gluster.c with upstream Gluster
Date: Wed, 29 Jun 2016 11:55:25 +0200
User-agent: Mutt/1.6.1 (2016-04-27)

On Wed, Jun 29, 2016 at 09:39:22AM +0200, Lukáš Doktor wrote:
> Dne 28.6.2016 v 17:56 Niels de Vos napsal(a):
> > On Tue, Jun 28, 2016 at 05:20:03PM +0200, Lukáš Doktor wrote:
> > > Dne 28.6.2016 v 16:10 Kevin Wolf napsal(a):
> > > > Am 28.06.2016 um 11:02 hat Niels de Vos geschrieben:
> > > > > Hi,
> > > > > 
> > > > > it seems we broke the block/gluster.c functionality with a recent 
> > > > > patch
> > > > > in upstream Gluster. In order to prevent this from happening in the
> > > > > future, I would like to setup a Jenkins job that installs a plan 
> > > > > CentOS
> > > > > with its version of QEMU, and nightly builds of upstream Gluster.
> > > > > Getting a notification about breakage the day after a patch got merged
> > > > > seems like a reasonable approach.
> > > > > 
> > > > > The test should at least boot the generic CentOS cloud image (slightly
> > > > > modified with libguestfs) and return a success/fail. I am wondering if
> > > > > there are automated tests like this already, and if I could (re)use 
> > > > > some
> > > > > of the scripts for it. At the moment, I am thinking to so it like 
> > > > > this:
> > > > >  - download the image [1]
> > > > >  - set kernel parameters to output on the serial console
> > > > >  - add a auto-login user/script
> > > > >  - have the script write "bootup complete" or something
> > > > >  - have the script poweroff the VM
> > > > >  - script that started the VM checks for the "bootup complete" message
> > > > >  - return success/fail
> > > > 
> > > > Sounds like something that Avocado should be able (or actually is
> > > > designed) to do. I can't tell you the details of how to write the test
> > > > case for it, but I'm adding a CC to Lukáš who probably can (and I think
> > > > it shouldn't be hard anyway).
> > > > 
> > > > Kevin
> > > > 
> > > 
> > > Hello guys,
> > > 
> > > yes, Avocado is designed to do this and I believe it even contain quite a
> > > few Gluster tests. You can look for them in avocado-vt or ping our QA 
> > > folks
> > > who might give you some pointers (cc Xu nad Hao).
> > > 
> > > Regarding the building the CI I use the combination of Jenkins, Jenkins 
> > > job
> > > builder and Avocado (avocado-vt) to check power/arm
> > > weekly/per-package-update. Jenkins even supports github and other triggers
> > > if you decide you have enough resources to check each PR/commit. It all
> > > depends on what HW you have available.
> > 
> > That looks promising! Its a bit more complex (or at least 'new' for me)
> > than that I was hoping. There is Gluster support in there, I found a
> > description of it here:
> >   http://avocado-vt.readthedocs.io/en/latest/GlusterFs.html
> >   http://avocado-vt.readthedocs.io/en/latest/RunQemuUnittests.html
> > 
> > Browsing through the docs does not really explain me how to put a
> > configuration file together that runs the QEMU tests with a VM image on
> > Gluster though. I probably need to read much more, but a pointer or very
> > minimal example would be much appreciated.
> > 
> > When I'm able to run avocado-vt, it should be trivial to put that in a
> > Jenkins job :)
> > 
> > Many thanks,
> > Niels
> > 
> 
> Hello Niels,
> 
> yep, it should be quite simple, but I don't want to break my setup just to
> try it out. Hopefully you'll manage to do it yourself. Anyway few
> pointers...
> 
> Install avocado:
> 
> 
> http://avocado-vt.readthedocs.io/en/latest/GetStartedGuide.html#installing-avocado
> 
> it should be straight forward so I expect you're able to run `avocado boot`
> already. There are several backends so can run the same tests on top of
> them. Let's assume you're using `qemu`, which is the default. The difference
> is the backend configuration location and some details regarding importing
> images and so on. Qemu is the simplest for me as it does not require
> anything.
> 
> Now regarding the GlusterFS. By default avocado uses `only
> (image_backend=filesystem)` hardcoded in
> `/usr/share/avocado_vt/backends/qemu/cfg/tests.cfg`. This is because wast
> majority of people don't want to change it and if they do they usually use
> custom config files. I don't think you'd like to go that way so let's just
> patch that file and change it to `only (image_backend=gluster)`.
> 
> Then you might take a look into
> `/usr/share/avocado_vt/shared/cfg/guest-hw.cfg` where you can find the
> `variants image_backend:` and several profiles there including `gluster`.
> You can specify the `gluster_brick` and other options.
> 
> When you modify everything to your needs you should re-run `avocado
> vt-bootstrap` to update the configs and you should be ready to run. Any test
> should then use the `gluster` image instead of file-based image.
> 
> 
> As for the kvm-unit-test, the documentation is seriously outdated and new
> version is in progress. You can use the pure avocado for running
> kvm-unit-test, see https://github.com/avocado-framework/avocado/pull/1280
> for details. I'll update the avocado-vt documentation when the script is
> merged.
> 
> 
> In the end I'd recommend using the `--xunit` to produce junit results and
> you can import them in jenkins including per-subtest-statuses. Let me send
> you my setup in PM for inspiration...

Thanks! This really helps me a lot. When I have my Jenkins job and
scripts ready, I'll share them here as well. It is not high on my
priority list, but I try to get it up and running before the end of next
week.

Niels

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]