criu/scripts/travis/travis-tests
Mike Rapoport 516b779551 travis-test: select tests skipped by lazy-pages pass more carefully
Most of zdtm test should pass with --lazy-pages with kernels newer than
4.11.
Some test excluded for older kernels surprisingly pass even now, mainly
becuase they do not actually stress userfaultfd, which will be fixed in the
upcoming commits :)
The cmdlinenv00 fails even with kernel 4.11 because of a race between uffd
and gup in the case external process reads /proc/<pid>/cmdline before
memory containing the command line is populated.

Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
2017-09-16 12:29:43 +03:00

119 lines
3.3 KiB
Bash
Executable file

#!/bin/sh
set -x -e
TRAVIS_PKGS="protobuf-c-compiler libprotobuf-c0-dev libaio-dev
libprotobuf-dev protobuf-compiler python-ipaddr libcap-dev
libnl-3-dev gcc-multilib gdb bash python-protobuf
libnet-dev util-linux asciidoc xmlto"
travis_prep () {
[ -n "$SKIP_TRAVIS_PREP" ] && return
cd ../../
service apport stop
CC=gcc
# clang support
if [ "$CLANG" = "1" ]; then
TRAVIS_PKGS="$TRAVIS_PKGS clang"
CC=clang
fi
# ccache support, only enable for non-GCOV case
if [ "$CCACHE" = "1" -a -z "$GCOV" ]; then
# ccache is installed by default, need to set it up
export CCACHE_DIR=$HOME/.ccache
[ "$CC" = "clang" ] && export CCACHE_CPP2=yes
# uncomment the following to get detailed ccache logs
#export CCACHE_LOGFILE=$HOME/ccache.log
CC="ccache $CC"
fi
# The /etc/apt/sources.list in the current trusty image for ppc64le is
# broken and needs to be fixed
if [ "$TR_ARCH" = "ppc64le" ] ; then
sed -i '/security/ d' /etc/apt/sources.list
fi
apt-get update -qq
apt-get install -qq --no-install-recommends $TRAVIS_PKGS
chmod a+x $HOME
}
travis_prep
ulimit -c unlimited
echo "|`pwd`/test/abrt.sh %P %p %s %e" > /proc/sys/kernel/core_pattern
export GCOV
time make CC="$CC" -j4
time make CC="$CC" -j4 -C test/zdtm
[ -f "$CCACHE_LOGFILE" ] && cat $CCACHE_LOGFILE
./criu/criu check
./criu/criu check --all || echo $?
./criu/criu cpuinfo dump
./criu/criu cpuinfo check
umask 0000
export SKIP_PREP=1
# The 3.19 kernel (from Ubuntu 14.04) has a bug. When /proc/PID/pagemap
# is read for a few VMAs in one read call, incorrect data is returned.
# See https://github.com/xemul/criu/issues/207
# Kernel 4.4 (from Ubuntu 14.04.5 update) fixes this.
uname -r | grep -q ^3\.19 && export CRIU_PMC_OFF=1
chmod 0777 test/
chmod 0777 test/zdtm/static
chmod 0777 test/zdtm/transition
./test/zdtm.py run -a -p 2
KERN_MAJ=`uname -r | cut -d. -f1`
KERN_MIN=`uname -r | cut -d. -f2`
if [ $KERN_MAJ -ge "4" ] && [ $KERN_MIN -ge "11" ]; then
LAZY_EXCLUDE="-x cmdlinenv00"
else
LAZY_EXCLUDE="-x maps007 -x fork -x fork2 -x uffd-events -x cgroupns
-x socket_listen -x socket_listen6 -x cmdlinenv00
-x socket_close_data01 -x file_read"
fi
./test/zdtm.py run -a -p 2 --lazy-pages $LAZY_EXCLUDE --keep-going --report report
bash ./test/jenkins/criu-fault.sh
bash ./test/jenkins/criu-fcg.sh
bash ./test/jenkins/criu-inhfd.sh
make -C test/others/mnt-ext-dev/ run
#make -C test/others/exec/ run
make -C test/others/make/ run
./test/zdtm.py run -t zdtm/static/env00 --sibling
./test/zdtm.py run -t zdtm/transition/maps007 --pre 2 --dedup
./test/zdtm.py run -t zdtm/transition/maps007 --pre 2 --noauto-dedup
./test/zdtm.py run -t zdtm/transition/maps007 --pre 2 --page-server
./test/zdtm.py run -t zdtm/transition/maps007 --pre 2 --page-server --dedup
./test/zdtm.py run -t zdtm/static/socket-tcp-local --norst
ip net add test
./test/zdtm.py run -t zdtm/static/env00 -f h --join-ns
# RPC testing
./test/zdtm.py run -t zdtm/static/env00 --rpc # Basic
./test/zdtm.py run -t zdtm/static/ptrace_sig -f h --rpc # Error handling (crfail test)
./test/zdtm.py run --empty-ns -T zdtm/static/socket-tcp*-local --iter 2
pip install flake8
make lint
# Check that help output fits into 80 columns
WIDTH=$(./criu/criu --help | wc --max-line-length)
if [ "$WIDTH" -gt 80 ]; then
echo "criu --help output does not obey 80 characters line width!"
exit 1
fi