Line 4: |
Line 4: |
| [https://travis-ci.org Travis CI] is a free public service, it is well integrated with github. | | [https://travis-ci.org Travis CI] is a free public service, it is well integrated with github. |
| | | |
− | To test CRIU with Travis CI, the Ubuntu 14.04 "trusty" VM is used, which has root access and an ability to run Docker containers.details. With Travis CI, we check compilation on all supported platforms (x86_64, arm, aarch64, and power), and execute all tests that can work on the kernel available. See <code>.travis.yml</code>, <code>scripts/travis/</code> and <code>scripts/build/</code> in CRIU sources for details. | + | To test CRIU with Travis CI, the Ubuntu 14.04 "trusty" VM is used, which has root access and an ability to run Docker containers.details. |
| | | |
− | Building CRIU for other platforms on x86_64 is a bit tricky. We use [[Docker build|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 [https://github.com/xemul/criu/blob/master/scripts/build/extract-deb-pkg a script] downloads it from Debian and extracts binaries.
| + | With Travis CI, we do the following tests: |
| + | * check compilation on all supported platforms (x86_64, arm, aarch64, and power) |
| + | * do the same with <code>CC=clang</code> instead of gcc |
| + | * check compilation on Alpine Linux (x86_64 only) |
| + | * execute all tests that can work on the kernel available ([[ZDTM test suite]] and some other tests). |
| + | |
| + | For implementation details, see <code>.travis.yml</code>, <code>scripts/travis/</code> and <code>scripts/build/</code> in CRIU sources for details. |
| + | |
| + | === Non-x86 architectures === |
| + | |
| + | Travis CI only provides x86_64, so using other platforms is a bit tricky. We use [[Docker build|Docker]] to get a container for a target platform, and a static build of qemu-user-$ARCH to run this container. As qemu-user-static is not available for Ubuntu 14.04, [https://github.com/xemul/criu/blob/master/scripts/build/extract-deb-pkg a script] downloads it from Debian and extracts binaries. |
| + | |
| + | Unfortunately, qemu-user functionality is limited (for example, <code>strace</code> syscall is not implemented), so we can't run any tests on these architectures. |
| | | |
| === Kernel testing === | | === Kernel testing === |
Line 30: |
Line 42: |
| We use Jenkins to execute tests. It works only for the criu upstream repo and isn't available to users yet. If you visit [https://ci.openvz.org/view/CRIU/], you will find more than dozen jobs for different configurations. We try to test all criu features. | | We use Jenkins to execute tests. It works only for the criu upstream repo and isn't available to users yet. If you visit [https://ci.openvz.org/view/CRIU/], 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: | + | 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 |
| * dump/restore a few times | | * dump/restore a few times |
Line 57: |
Line 69: |
| * Virtual machine (PPC64el) | | * Virtual machine (PPC64el) |
| | | |
| + | == See also == |
| + | |
| + | * [[ZDTM test suite]] |
| + | * [[Linux-next]] |
| | | |
− | == Links == | + | == External links == |
| * [https://travis-ci.org/xemul/criu Travis] | | * [https://travis-ci.org/xemul/criu Travis] |
| * [https://ci.openvz.org/view/CRIU/ Mr Jenkins] | | * [https://ci.openvz.org/view/CRIU/ Mr Jenkins] |
| | | |
| [[Category: Development]] | | [[Category: Development]] |