[CRIU] [PATCH] tests: add a runc based test
Andrei Vagin
avagin at virtuozzo.com
Wed Jul 25 08:26:03 MSK 2018
On Wed, Jul 18, 2018 at 10:23:55PM +0200, Adrian Reber wrote:
> Is this a better runc test setup? It is a bit hacky to get the runc
> test suite running standalone as it can be seen in my patch.
>
> So should we rather use the this approach or my older approach with our
> own runc test setup?
>
> I liked the previous a bit better, but this also works for me.
>
> Adrian
>
Hi Adrian,
Look at this
https://github.com/avagin/runc/commit/fbe69e8b5c68bb52b48dfaa43b80ce693fe3da2f
I'm thinking about the idea to have a separate repo to run additional
tests in travis-ci.
I spent a few minutes and create the "ideal" runc test. Mr Travis allows
tuning a job to execute it once a day. Yes, it will not be executed for
each patch, but I think our current travis test suite is too big
already. I am not sure whether it is the good way to run runc tests.
What do you think?
Thanks,
Andrei
> On Wed, Jul 18, 2018 at 07:49:29PM +0000, Adrian Reber wrote:
> > From: Adrian Reber <areber at redhat.com>
> >
> > Using runc with CRIU does currently not work if /tmp is read-only.
> >
> > To detect runc breakage earlier this downloads the runc repository to
> > run the checkpoint part of runc's test suite.
> >
> > Related: #520
> >
> > Signed-off-by: Adrian Reber <areber at redhat.com>
> > ---
> > .travis.yml | 1 +
> > scripts/travis/Dockerfile.runc | 9 +++++++++
> > scripts/travis/Makefile | 21 +++++++++++++++++++++
> > 3 files changed, 31 insertions(+)
> > create mode 100644 scripts/travis/Dockerfile.runc
> >
> > diff --git a/.travis.yml b/.travis.yml
> > index d8a50a0..3718d70 100644
> > --- a/.travis.yml
> > +++ b/.travis.yml
> > @@ -25,6 +25,7 @@ env:
> > - TR_ARCH=local GCOV=1
> > - TR_ARCH=centos
> > - TR_ARCH=phaul-test
> > + - TR_ARCH=runc-test
> > matrix:
> > allow_failures:
> > - env: TR_ARCH=docker-test
> > diff --git a/scripts/travis/Dockerfile.runc b/scripts/travis/Dockerfile.runc
> > new file mode 100644
> > index 0000000..f482f5b
> > --- /dev/null
> > +++ b/scripts/travis/Dockerfile.runc
> > @@ -0,0 +1,9 @@
> > +FROM golang:1.10-stretch
> > +
> > +RUN apt-get update && apt-get install -y build-essential
> > +
> > +WORKDIR /go/src/github.com/opencontainers/runc
> > +
> > +ADD runc /go/src/github.com/opencontainers/runc
> > +
> > +RUN make recvtty
> > diff --git a/scripts/travis/Makefile b/scripts/travis/Makefile
> > index f7181ac..59343a9 100644
> > --- a/scripts/travis/Makefile
> > +++ b/scripts/travis/Makefile
> > @@ -37,5 +37,26 @@ phaul-test:
> > docker-test:
> > ./docker-test.sh
> >
> > +runc-test:
> > + SKIP_TRAVIS_TEST=1 ./travis-tests
> > + # clone runc we actually just want the test suite
> > + git clone https://github.com/opencontainers/runc
> > + # download the released binary
> > + curl -o runc/runc -sSL https://github.com/opencontainers/runc/releases/download/v1.0.0-rc5/runc.amd64
> > + chmod 755 runc/runc
> > + # for the test suite we need to build recvtty
> > + docker build -t runc -f Dockerfile.runc .
> > + docker run runc tar c -C contrib/cmd/recvtty recvtty | tar x -C runc/contrib/cmd/recvtty
> > + # install current criu
> > + install -D -m0755 ../../criu/criu /usr/local/sbin/criu
> > + # get bats to run tests
> > + git clone https://github.com/sstephenson/bats.git
> > + cd bats && git reset --hard 03608115df2071fff4eaaff1605768c275e5f81f
> > + cd bats && ./install.sh /usr/local
> > + # the runc test suite does 'go env GOARCH' to detect the arch, let's fake this
> > + echo '#!/bin/bash\necho travis\n' > /usr/local/bin/go
> > + chmod 755 /usr/local/bin/go
> > + cd runc && bats -t tests/integration/checkpoint.bats
> > +
> > %:
> > $(MAKE) -C ../build $@$(target-suffix)
> > --
> > 1.8.3.1
> >
> > _______________________________________________
> > CRIU mailing list
> > CRIU at openvz.org
> > https://lists.openvz.org/mailman/listinfo/criu
More information about the CRIU
mailing list