[CRIU] [PATCH] tests: fix builds on alpine and centos
Andrei Vagin
avagin at virtuozzo.com
Fri Jun 22 00:11:17 MSK 2018
On Thu, Jun 21, 2018 at 08:50:53PM +0000, Adrian Reber wrote:
> From: Adrian Reber <areber at redhat.com>
>
> Install sudo, create test user with ID 1000, install bash,
> fix pidfile creation and pidfile chmod.
>
> Signed-off-by: Adrian Reber <areber at redhat.com>
> ---
> scripts/build/Dockerfile.alpine | 7 ++++++-
> scripts/build/Dockerfile.centos | 1 +
> test/others/rpc/Makefile | 4 +++-
> 3 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/build/Dockerfile.alpine b/scripts/build/Dockerfile.alpine
> index a210d06..4163bce 100644
> --- a/scripts/build/Dockerfile.alpine
> +++ b/scripts/build/Dockerfile.alpine
> @@ -4,6 +4,7 @@ ARG ENV1=FOOBAR
>
> RUN apk update && apk add \
> $CC \
> + bash \
> build-base \
> ccache \
> coreutils \
> @@ -15,7 +16,8 @@ RUN apk update && apk add \
> pkgconfig \
> protobuf-c-dev \
> protobuf-dev \
> - python
> + python \
> + sudo
>
> COPY . /criu
> WORKDIR /criu
> @@ -37,5 +39,8 @@ RUN apk add \
> e2fsprogs \
> asciidoc xmlto
>
> +# The rpc test cases are running as user #1000, let's add the user
> +RUN adduser -u 1000 -D test
> +
> RUN pip install protobuf ipaddress junit_xml
> RUN make -C test/zdtm
> diff --git a/scripts/build/Dockerfile.centos b/scripts/build/Dockerfile.centos
> index 5f84707..0160b75 100644
> --- a/scripts/build/Dockerfile.centos
> +++ b/scripts/build/Dockerfile.centos
> @@ -27,6 +27,7 @@ RUN yum install -y \
> python2-junit_xml \
> python-yaml \
> python-six \
> + sudo \
> tar \
> which \
> e2fsprogs \
> diff --git a/test/others/rpc/Makefile b/test/others/rpc/Makefile
> index 5b383cf..f2a7710 100644
> --- a/test/others/rpc/Makefile
> +++ b/test/others/rpc/Makefile
> @@ -7,9 +7,11 @@ LDLIBS += -lprotobuf-c
> run: all
> mkdir -p build
> chmod a+rwx build
> + @# Create pidfile first to chmod without waiting
> + touch build/pidfile
> + chmod a+rw build/pidfile
I don't understand how it can work. pidfile is created with O_EXCL, so
it should fail if a file exists.
int write_pidfile(int pid)
{
int fd;
fd = open(opts.pidfile, O_WRONLY | O_EXCL | O_CREAT, 0600);
O_EXCL Ensure that this call creates the file: if this flag is speci‐
fied in conjunction with O_CREAT, and pathname already exists,
then open() fails with the error EEXIST.
> @# need to start the criu daemon here to access the pidfile
> sudo -g '#1000' -u '#1000' ./criu service -v4 -W build -o service.log --address criu_service.socket -d --pidfile pidfile
> - chmod a+rw build/pidfile
> sudo -g '#1000' -u '#1000' ./run.sh
> sudo -g '#1000' -u '#1000' ./version.py
>
> --
> 1.8.3.1
>
More information about the CRIU
mailing list