Commit graph

64 commits

Author SHA1 Message Date
Andrew Vagin
3b366c3141 zdtm: check "criu dedup"
Add a new option to zdtm.py to run "criu dedup" after "criu dump"
or "criu pre-dump".

Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-09-26 15:42:40 +03:00
Andrei Vagin
42058dc7ce test: don't do MS_REC|MS_PRIVATE for host mounts
Here is a race when someone umounted something and this operation
isn't propagated into our namespace.

CRIU                                | Another process
-----------------------------------------------------------------
pivot_root(".", put_root)           |
mount(put_root, MS_REC|MS_PRIVATE)  |
                                    | umount /xxx/yyy
                                    | umount /xxx -> EBUSY
umount(put_root)

We do this to not affect mounts in put_root, but we can mask
these mounts as slave and this will work for us and for external
users.

Reported-by: Mr Travis
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-09-06 19:31:20 +03:00
Eugene Batalov
dd7cfba0ae test: new jenkins script for testing of --leave-stopped option
There is no similar jenkins script that tests similar options now.
So make a new script.

Signed-off-by: Eugene Batalov <eabatalov89@gmail.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-09-06 19:31:20 +03:00
Eugene Batalov
40f56d5dc3 test: add test for anon shmem dedup
Main test features:
- Non trivial ps tree with non trivial anon shmem regions
  (no such test exists now).
- Each ps tree process continuously writes parts of anon shmem
  vmas and validates these writes after restore
  (required for dedup testing).
- Checking simultaneous changing of anon shmem contents in different
  processes.

Signed-off-by: Eugene Batalov <eabatalov89@gmail.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-09-06 19:31:19 +03:00
Andrew Vagin
fafdfb4754 faul-inject: Check a case when parasite can't initialize a command socket
Give a fake address for a server socket.

Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-08-11 16:18:43 +03:00
Andrew Vagin
93e922238d criu: check that ghost files are cleaned up in error cases
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-08-01 16:51:33 +03:00
Andrew Vagin
628b125866 zdtm.py: check restore when criu dump runs over a non-root user
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-08-01 16:51:33 +03:00
Andrew Vagin
9205fc3dec travis: add more tests to maximise code coverage
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-08-01 16:51:05 +03:00
Andrew Vagin
9064905720 jenkins: add a new job to check --join-ns
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-06-01 14:52:21 +03:00
Pavel Emelyanov
330b0d1656 test: Check action scripts to work as we expect
We expect:

- all 9 scripts are called
- there's always images dir variable
- for 7 of those scripts there's root-pid variable

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
Acked-by: Andrew Vagin <avagin@virtuozzo.com>
2016-05-06 14:39:25 +03:00
Pavel Emelyanov
4576a03385 tests: Check that no-breakpoints restore works
v2: Don't clear_breakpoints too.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-05-06 14:38:29 +03:00
Dmitry Safonov
35f209ff76 fault: add dump pages fault for parasite_dump_pages_seized
Parasite should cleanup after fauilure and remove read-protection
from VMAs. Check it with maps00 test & fault injection.

Tested on travis with some addition:
python test/zdtm.py run -t zdtm/static/maps00 --fault 3 --keep-going --report report -f h || false
https://travis-ci.org/0x7f454c46/criu/jobs/119252291

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Cc: Pavel Emelyanov <xemul@virtuozzo.com>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-04-04 17:10:15 +03:00
Pavel Emelyanov
070d420be6 test: Check nomemfd parasite injection
By default criu tries to create parasite mem with memfd syscall,
which is present in many systems. Let's check also the legacy way.

Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-04-04 17:10:14 +03:00
Andrew Vagin
08ff91d966 jenkins: build a coverage report if GCOV is set (v2)
v2: set umask to 0000. It's required to generate gcda, gcno files
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-04-01 18:06:29 +03:00
Andrew Vagin
8d23e3342f jenkins: use a full name of the --keep-img option
+ ./test/zdtm.py run --all -f best -x maps04 -x cgroup02 --norst --keep always
usage: CRIU test suite run [-h] [-a] [-t TEST] [-T TESTS] [-f FLAVOR]
                           [-x EXCLUDE] [--sibling] [--pre PRE] [--snaps]
                           [--dedup] [--nocr] [--norst] [--iters ITERS]
                           [--fault FAULT] [--sat] [--sbs]
                           [--freezecg FREEZECG] [--user] [--page-server]
                           [-p PARALLEL] [--dry-run]
                           [-k {always,never,failed}] [--report REPORT]
                           [--keep-going]
CRIU test suite run: error: ambiguous option: --keep could match --keep-img, --keep-going

It worked fine without the --keep-going option.

[xemul: Remove the --keep-going and --report options, the run
        of zdtm.py is not of much interest for TAP ]

Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-03-25 23:39:21 +03:00
Sergey Bronnikov
229a6edfbd jenkins: change jenkins script to run full set of tests
add options --keep-going and --report (if it was absent)
to run full testrun with report creation

Signed-off-by: Sergey Bronnikov <sergeyb@openvz.org>
Acked-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-03-25 23:39:21 +03:00
Andrei Vagin
c5c5434506 fault: add ability to fault open_by_handel in check_open_handle
From code coverage report, we found that inotify_irmap doesn't test irmap
cache, because we is always able to resolve path from /proc/PID/fd/X.

Current view:	top level - criu - irmap.c (source / functions)			Hit	Total	Coverage
Test:	criu.info		Lines:	40	223	17.9 %
Date:	2016-03-16		Functions:	4	13	30.8 %

This series introduces a new fault to emulate a situation
when a file can't be opened by handle and we have to find
it in the irmap cache/

It's required to test irmap cache. I don't know how to force it
without this patch. Each time when a file can be opened by handle,
its path can be resolved via /proc/PID/fd/X.

Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-03-25 23:36:13 +03:00
Andrew Vagin
3006ada21d jenkins: add a script to execute tests on overlayfs
Here are all tests which pass now

And I created an issue to investigate fails of other tests:
https://github.com/xemul/criu/issues/136

Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-03-16 16:16:08 +03:00
Andrew Vagin
2cb4532e26 tests: remove zdtm.sh (v2)
It was replaced by zdtm.py.

v2: remove zdtm.sh from other scripts
    remove fault-injection, because nobody uses it

Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-24 13:09:57 +03:00
Pavel Emelyanov
c07ef80481 jenkins: The "live" subdir is no longer there
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-20 15:51:07 +03:00
Cyrill Gorcunov
3a234722df test: jenkins -- Fix path for pycriu
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
2016-02-16 10:48:15 +03:00
Andrew Vagin
5d75e1f4cf jenkins: add a script to check inherit file descriptors
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-29 14:45:13 +03:00
Pavel Emelyanov
b8d92bd4eb jenkins: Add user mode job
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Looks-good-to-me: Andrew Vagin <avagin@virtuozzo.com>
2015-12-24 14:42:41 +03:00
Pavel Emelyanov
a5c2e8cd86 jenkins: Mount binfmt misc in run_ct
The mountpoints.c test creates such mount and criu will try to
kerndat-check one, so this fs should be on "host".

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-23 17:12:53 +03:00
Andrew Vagin
c3e9140304 jenkins: build criu with debuginfo
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-23 16:34:27 +03:00
Pavel Emelyanov
505896e664 zdtm.py: Test how freeze cgroup works (v2)
V2: Fix the test/Makefile

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by:  Andrew Vagin <avagin@virtuozzo.com>
2015-12-23 15:43:37 +03:00
Pavel Emelyanov
bde6d0dbf9 jenkins: No parallelizm for group test
The head test is zdtm/lib/group, so it is impossible to run several
instances of it in parallel

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-11 17:49:55 +03:00
Pavel Emelyanov
e71d50894d jenkins: Add groups
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-11 16:51:18 +03:00
Pavel Emelyanov
3825c3e5d4 crit: Speed up jenkins test ~60 times
Running crit tool 4 times per test (decode, encode, decode --pretty
and encode back again) is way too slow. The majority of time, as
it turned out, goes on python load and arguments parsing. The en-
and de-coding works pretty fast.

So doing re-code logic in one python script for ALL images is way
way faster -- ~1 hour vs ~1 minute on my box.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-11 16:36:05 +03:00
Pavel Emelyanov
16dccd5ca2 jenkins: Fix CRIT test to skip non-criu images and provide cumulative output
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-12-08 18:21:47 +03:00
Pavel Emelyanov
77f9b7bfbb jenkins: Add test for crit de/encode correctness
The crit tool should decode and encode all images and after
de- and en- sequence the result should be the same as before.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by: Ruslan Kuprieiev <rkuprieiev@cloudlinux.com>
2015-12-08 15:06:08 +03:00
Pavel Emelyanov
c1b1880b34 zdtm: Check how auto-dedup works
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-30 11:44:57 +03:00
Pavel Emelyanov
8135e26ae3 jenkins: Fix path to zdtm.py in criu-fault
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-23 13:22:08 +03:00
Pavel Emelyanov
e6859679cd jenkins: Mark criu-fault test as executable
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-23 12:42:22 +03:00
Pavel Emelyanov
2b5a11a7a3 jenkins: Add job for known fault injections (v2)
v2: Add --report for report generation

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
Acked-by: Andrew Vagin <avagin@virtuozzo.com>
2015-11-23 11:48:23 +03:00
Andrey Vagin
a9e5d2b417 jenkins: fix path to report
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 22:32:06 +03:00
Andrew Vagin
25eb3d6db2 jenkin: mark all scripts as executalbe
Signed-off-by: Andrew Vagin <avagin@virtuozzo.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 20:59:07 +03:00
Pavel Emelyanov
a6cb3d782d jenkins: Do not test cgroup02 with --norst
This test expects that it _will_ be C/R-ed into new hierarchy

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 17:16:52 +03:00
Pavel Emelyanov
127152268a jenkins: Make criu-snap test use zdtm.py
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 18:11:38 +04:00
Pavel Emelyanov
cc378b909a jenkins: Make criu-dump test use zdtm.py
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 18:01:37 +04:00
Pavel Emelyanov
37ec967643 jenkins: Move pre-dump test on .py launcher
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 15:58:44 +03:00
Pavel Emelyanov
446a8ba857 jenkins: Exclude maps04 from -sibling test
This guy runs on tmpfs for dumps and maps04 is too heavy for it

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-12 15:15:47 +03:00
Andrew Vagin
1c1795412e jenkins: add script to create a test container
We want to execute tests in an isolated environment

Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-11 11:40:10 +03:00
Pavel Emelyanov
20088c4fcc jenkins: Move regular test on .py
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-11 11:36:18 +03:00
Andrey Vagin
4aaa707260 jenkins: save report in the "test" directory
Now we save report in test/dump/report. It doesn't work when
we mount tmpfs into test/dump, because Jenkins runs in another
mount namespace.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-11-10 15:55:15 +03:00
Andrew Vagin
69f6a4794f jenkins: collect an report for each run
Now zdtm.py can construct an report which contains all required
inforamtion for investigating a problem. This patch adds support
of this functionality to jenkins scripts.

Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-10-30 14:57:01 +03:00
Andrey Vagin
858c30e1c6 jenkins: call fail() in a error case
fail() saves all files in an archive for further investigations.

Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-10-28 15:20:16 +03:00
Andrew Vagin
c51cdedcf9 jenkins: use zdtm.py for criu-iter
Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-10-27 22:55:58 +03:00
Andrew Vagin
be16f4f09b jenkins: use zdtm.py to run criu-sibling
Signed-off-by: Andrew Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-10-20 13:30:40 +03:00
Andrey Vagin
ec31527be1 jenkins: include criu-lib.sh and call prep()
Signed-off-by: Andrey Vagin <avagin@openvz.org>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
2015-09-04 18:46:25 +03:00