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: Lukáš Doktor
Subject: Re: [Qemu-devel] Automated testing of block/gluster.c with upstream Gluster
Date: Wed, 29 Jun 2016 09:39:22 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1

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...


Regards,
Lukáš

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

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