Difference between revisions of "Continuous integration"
Line 25: | Line 25: | ||
In addition, we execute our tests on linux-next to be sure that nobody breaks us in a kernel space. | In addition, we execute our tests on linux-next to be sure that nobody breaks us in a kernel space. | ||
− | [https://ci.openvz.org/computer/CRIU-x86_64/ https://ci.openvz.org/job/CRIU-x86_64/badge/icon?believeme=.png] | + | [https://ci.openvz.org/computer/CRIU-x86_64/ https://ci.openvz.org/job/CRIUjob/CRIU-x86_64/badge/icon?believeme=.png] |
[https://ci.openvz.org/computer/CRIU-linux-next https://ci.openvz.org/job/CRIU-linux-next/badge/icon?believeme=.png] | [https://ci.openvz.org/computer/CRIU-linux-next https://ci.openvz.org/job/CRIU-linux-next/badge/icon?believeme=.png] | ||
Revision as of 21:35, 24 March 2016
Travis CI
It's a public service, which is integrated with github and it's available for everyone.
We use "The Trusty beta Build Environment", where we have a full root access and an ability to execute docker containers. We use Travis to check compilation on x86_64, arm and aarch64. In addition, we execute all tests which have to work on the Trusty kernel.
The most interesting part of this work is how to build CRIU for other platforms on x86_64. We use Docker to get a container for a target platform and qemu-static to run this container. qemu-static doesn't exist in all distributions, so we download it from Debian and extract binaries from it [1].
It's highly recommended to enable Travis for your criu repo on github and check changes before sending them to the mail list.
Mr Jenkins
We use Jenkins to execute tests. It works only for the criu upstream repo and isn't available to users yet. If you visit [3], you will find more than dozen jobs for different configurations. We try to test all criu features.
Most part of jobs uses [ZDTM Test Suite]. There each test is a small program. Each job plays different scenarios with these tests:
- dump/restore
- dump/restore a few times
- dump/restore with a freezer cgroup
- dump only
- pre-dump, dump/restore with or without page-server
- pre-dump with duplication
- fault-injection
- collect code coverage
In addition, we execute our tests on linux-next to be sure that nobody breaks us in a kernel space.
Targets
CRIU project supports different hardware architectures and we test all of supported archs. This chapter describes targets used for CRIU testing.
- Virtuozzo virtual machine (x86_64, Fedora?)
- Fitlet (x86_64, Fedora 23)
- Raspberry Pi (ARM, Raspbian)
- Virtual machine (PPC64el)