[CRIU] [PATCH] travis: run tests with asan

Dmitry Safonov 0x7f454c46 at gmail.com
Wed Mar 29 15:26:38 PDT 2017


2017-03-30 0:51 GMT+03:00 Andrei Vagin <avagin at openvz.org>:
> From: Andrei Vagin <avagin at virtuozzo.com>
>
> Signed-off-by: Andrei Vagin <avagin at virtuozzo.com>
> ---
>  .travis.yml                          |  1 +
>  scripts/build/Dockerfile.fedora-asan | 16 ++++++++++++++++
>  scripts/build/Makefile               |  2 +-
>  scripts/travis/Makefile              |  3 +++
>  scripts/travis/asan.sh               | 24 ++++++++++++++++++++++++
>  5 files changed, 45 insertions(+), 1 deletion(-)
>  create mode 100644 scripts/build/Dockerfile.fedora-asan
>  create mode 100755 scripts/travis/asan.sh
>
> diff --git a/.travis.yml b/.travis.yml
> index a5dfb9f..78b1f0c 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -8,6 +8,7 @@ env:
>    - TR_ARCH=local       GCOV=1
>    - TR_ARCH=local       CLANG=1
>    - TR_ARCH=alpine
> +  - TR_ARCH=asan
>    - TR_ARCH=x86_64
>    - TR_ARCH=armv7hf
>    - TR_ARCH=aarch64
> diff --git a/scripts/build/Dockerfile.fedora-asan b/scripts/build/Dockerfile.fedora-asan
> new file mode 100644
> index 0000000..13aad28
> --- /dev/null
> +++ b/scripts/build/Dockerfile.fedora-asan
> @@ -0,0 +1,16 @@
> +FROM fedora:latest
> +ARG CC=gcc
> +ARG ENV1=FOOBAR
> +
> +RUN dnf install -y git gcc make
> +RUN dnf install -y protobuf-devel protobuf-c-devel libaio-devel libcap-devel libnl3-devel libnet-devel
> +RUN dnf install -y python ccache libasan findutils tar python-yaml protobuf-python iptables iproute python-ipaddr procps-ng
> +
> +COPY . /criu
> +WORKDIR /criu
> +
> +ENV CCACHE_DIR=/tmp/.ccache CCACHE_NOCOMPRESS=1 $ENV1=yes
> +RUN mv .ccache /tmp; make mrproper; ccache -s; \
> +       date; make -j $(nproc) ASAN=1 CC="$CC"; date
> +RUN make ASAN=1 -C test/zdtm -j $(nproc)
> +
> diff --git a/scripts/build/Makefile b/scripts/build/Makefile
> index b17bf10..5308711 100644
> --- a/scripts/build/Makefile
> +++ b/scripts/build/Makefile
> @@ -1,6 +1,6 @@
>  QEMU_ARCHES := armv7hf aarch64 ppc64le # require qemu
>  ARCHES := $(QEMU_ARCHES) x86_64
> -TARGETS := $(ARCHES) alpine
> +TARGETS := $(ARCHES) alpine fedora-asan
>  TARGETS_CLANG := $(addsuffix $(TARGETS),-clang)
>
>  all: $(TARGETS) $(TARGETS_CLANG)
> diff --git a/scripts/travis/Makefile b/scripts/travis/Makefile
> index 0dadd65..99df485 100644
> --- a/scripts/travis/Makefile
> +++ b/scripts/travis/Makefile
> @@ -15,6 +15,9 @@ alpine:
>         $(MAKE) -C ../build $@$(target-suffix)
>         docker run --rm -it --privileged -v /lib/modules:/lib/modules criu-alpine ./test/zdtm.py run -t zdtm/static/env00
>
> +asan:
> +       $(MAKE) -C ../build fedora-asan
> +       docker run --rm -it --privileged -v /lib/modules:/lib/modules criu-fedora-asan ./scripts/travis/asan.sh
>
>  %:
>         $(MAKE) -C ../build $@$(target-suffix)
> diff --git a/scripts/travis/asan.sh b/scripts/travis/asan.sh
> new file mode 100755
> index 0000000..9408794
> --- /dev/null
> +++ b/scripts/travis/asan.sh
> @@ -0,0 +1,24 @@
> +#!/bin/sh
> +
> +set -x
> +
> +cat /proc/self/mountinfo
> +
> +chmod 0777 test
> +chmod 0777 test/zdtm/transition/
> +chmod 0777 test/zdtm/static
> +
> +./test/zdtm.py run -a --keep-going -k always --parallel 4 \
> +               -x zdtm/static/cwd02 -x zdtm/static/cwd01 \
> +               -x zdtm/static/inotify00 -x zdtm/static/rtc \
> +               -x zdtm/static/mntns_deleted -x zdtm/static/unlink_fstat03 \

JFI:
What's wrong with those?

> +
> +ret=$?
> +for i in `find / -name 'asan.log*'`; do
> +       echo $i;
> +       echo ========================================
> +       cat $i;
> +       echo ========================================
> +       ret=1;
> +done;
> +exit $ret



-- 
             Dmitry


More information about the CRIU mailing list