OS-level test automation
Perl C++ Python Makefile XS Shell M4
Latest commit abad240 Feb 20, 2017 @aaannz aaannz committed on GitHub Merge pull request #724 from richiejp/virtio_term_select_fd
virtio terminal: Reduce CPU time using select
Permalink
Failed to load latest commit information.
OpenQA Change first colum output to support more characters Dec 20, 2016
backend Allow to set qemu -smbios via variable Feb 16, 2017
bin rename start.pl to isotovideo Nov 27, 2014
consoles virtio terminal: Reduce CPU time using select Feb 16, 2017
debugviewer Re-Indent C++ code Dec 16, 2016
dmidata fix dmi type 1 file Oct 1, 2014
doc Allow to set qemu -smbios via variable Feb 16, 2017
etc Fix Makefile to install the perl modules properly Jan 21, 2016
ppmclibs Change first colum output to support more characters Dec 20, 2016
snd2png Re-Indent C++ code Dec 16, 2016
systemd don't hardcode libexecdir in openvswitch service file Apr 26, 2016
t Add simple test for 'no_wait' option Feb 6, 2017
tools Sync perltidy with openQA#773f59b (#662) Dec 16, 2016
.gitignore Test the full os-autoinst including qemu backend (#680) Dec 21, 2016
.perltidyrc Sync perltidy with openQA#773f59b (#662) Dec 16, 2016
.travis.yml Permit sudo on new repos for travis Jan 12, 2017
COPYING add copyright headers Dec 16, 2015
INSTALL.asciidoc docs: Use x86_64 openSUSE vars and explain vars Nov 15, 2016
Makefile.am Fix compilation warnings in the videoencoder Dec 18, 2016
README.asciidoc Make travis setup reusable (#683) Dec 23, 2016
autogen.sh Make travis setup reusable (#683) Dec 23, 2016
autotest.pm Include the subprocesses in the coverage report (#682) Dec 21, 2016
basetest.pm Merge pull request #714 from okurz/feature/test_for_assert_screen Feb 10, 2017
bmwqemu.pm Fix warnings in t/03-testapi.t Feb 6, 2017
check_needles.pl Make the hash policy more strict May 1, 2016
commands.pm Include the subprocesses in the coverage report (#682) Dec 21, 2016
configure.ac Correct repo link to github Feb 24, 2016
cpanfile Test the full os-autoinst including qemu backend (#680) Dec 21, 2016
crop.py crop.py: Correct style according to flake8 Dec 16, 2016
cv.pm add copyright headers Dec 16, 2015
distribution.pm Add virtio serial console backend and API Nov 23, 2016
isotovideo Add optional 'no_wait' parameter for check/assert_screen Feb 1, 2017
lockapi.pm Use more common 'qw()' style Dec 6, 2016
mmapi.pm Sync perltidy with openQA#773f59b (#662) Dec 16, 2016
myjsonrpc.pm Make cancelling more reliable (#576) Sep 2, 2016
needle.pm Replace pitux with tinycore as test image (#709) Jan 26, 2017
ocr.pm Use more common 'qw()' style Dec 6, 2016
os-autoinst-openvswitch Use more common 'qw()' style Dec 6, 2016
testapi.pm Merge pull request #714 from okurz/feature/test_for_assert_screen Feb 10, 2017
videoencoder.cpp Fix compilation warnings in the videoencoder Dec 18, 2016

README.asciidoc

os-autoinst os autoinst badge

The OS-autoinst project aims at providing a means to run fully automated tests. Especially to run tests of basic and low-level operating system components such as bootloader, kernel, installer and upgrade, which can not easily and safely be tested with other automated testing frameworks. However, it can just as well be used to test firefox and openoffice operation on top of a newly installed OS.

os-autoinst can be executed alone, but is currently designed to be executed together with openQA, the web user interface that allows to run more than one os-autoinst instance at the same time.

More information on os-autoinst and openQA can be found on http://os-autoinst.github.io/openQA/

Getting started

To install os-autoinst, you can see INSTALL

To execute an instance of os-autoinst, we need to create file named vars.json, that we use to store the values of the different variables that will configure and drive the behavior of the application.

There are some variables used by os-autoinst itself and other that are used by the tests. A minimal vars.json file can be:

{
   "DISTRI" :      "opensuse",
   "CASEDIR" :     "/full/path/for/tests",
   "NAME" :        "test-name",
   "ISO" :         "/full/path/for/iso",
   "VNC" :         "91",
   "BACKEND" :     "qemu",
   "DESKTOP" :     "kde"
}

Be advised that the file vars.json is read and also written by isotovideo so make sure to backup handcrafted versions of this file.

Now we can launch the application with:

$ ../os-autoinst/isotovideo

and we can use VNC to connect to the QEMU instance:

$ vncviewer localhost:91 -ViewOnly -Shared

How to contribute

If you want to contribute to this project, please clone and send git-pull requests via https://github.com/os-autoinst/os-autoinst.

More information on the contribution can be found on http://os-autoinst.github.io/openQA/contact/, too.

Rules for commits

  • Every commit is checked by Travis CI as soon as you create a pull request but you should run the os-autoinst tests locally, i.e. call

./autogen.sh
make

once to setup your workspace and before every commit

make check
  • You may also run local tests on your machine or in your own development environment to verify everything works as expected.

  • For git commit messages use the rules stated on How to Write a Git Commit Message as a reference

  • Every pull request is reviewed in a peer review to give feedback on possible implications and how we can help each other to improve

If this is too much hassle for you feel free to provide incomplete pull requests for consideration or create an issue with a code change proposal.