[Mageia-dev] Viviane, automated system to test installer

Michael Scherer misc at zarb.org
Thu Aug 25 22:49:05 CEST 2011


I finished a quick script that I wrote during my spare time on Wednesday
to do a automated test installation in a vm, using libvirt, virtinst,
and drakx auto-installation feature.  

As I like catchy names, the project is called Viviane, for 
Virtualized Integrated Verification of Installer with Automated
Networked Eyeballs. Why did I chose that name is buried deep in the
script, kudos to who find it ( and there goes the trick to make people
read my code ).


The idea is to use the network installation of cauldron on a qemu vm, to
restart the vm and thanks to autologin, autostart folder of xdg and
serial virtio, send the information to the host that the installation ad
first boot worked. Then after a timeout, the virtual machine is wiped,
and a mail is sent if the installation was not finished in 30 minutes
( configurable delay, based on the time needed on my laptop and my
network connection ). 

The goal is to test if the automated installation work, and if the
distribution is able to boot. While this seems not much, that's at least
a starting point.
Remaining problem

Main problems is that it requires a patch on virtinst, to add the
support of Mageia ( https://bugzilla.redhat.com/show_bug.cgi?id=733121
). So I cannot deploy it now on rabbit, as this would requires some
custom packages and some tests first.

For now, it was tested against Mandriva 2010.2 that installed fine each
time. As each run take me 30 minutes, there may still have some bugs
left or introduced after the last cleaning. So while I think it should
work fine and out of the box on supported hardware ( connected to the
internet, with 1G of memory to spare, proper processor and around 9G of
free disk space ), I didn't test anywhere else than on my laptop.

I post this here so I can gather patches and ideas ( I remind that
remarks without patchs will have a non negligible chance of not being
implemented wether I am convinced or not ), and I will commit the script
to our svn once I am sure it is ready ( ie soon )

The future

The idea could be extended to run more than a simple script that do
"echo hello > /dev/ttyS0" ( as it does now ) like something that for
example start firefox on a custom url, check that firefox did start and
was able to load the url then kill it. 

Using xnee, or accessibility support, some automation of graphical
interface could be done, but that's the hard part.  

I also planned to also add a screenshot of the guest upon failure ( that
requires a recent libvirt ) and to suspend the system for further
analysis, and to distribute this with a webserver. Some more
informations could be gather with libguestfs, but I didn't looked much
at it for now.

I also didn't think of integration with something like buildbot or
jenkins, or just youri.

And finally, with automated livecd creation we could also test livecd,
provided the small hook I used are added ( ie, 1 script and 1 desktop
file ) is added, and provided we shunt the first time boot wizard.
Michael Scherer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: viviane.sh
Type: application/x-shellscript
Size: 6466 bytes
Desc: not available
URL: </pipermail/mageia-dev/attachments/20110825/7f2c0b35/attachment-0001.bin>

More information about the Mageia-dev mailing list