mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-29 21:12:07 -06:00
docs/devel: update the container based tests
This section has grown a little stale so clean-up the language and examples for current usage: - refer to containers at the top - mention podman can also be used - add podman prerequisites section - move to using "docker-help" for online help - mention the registry and it's purpose - don't refer to out-of-date min-glib image Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <20210222101455.12640-6-alex.bennee@linaro.org>
This commit is contained in:
parent
663a041e1d
commit
9c1f491e02
1 changed files with 47 additions and 16 deletions
|
@ -280,13 +280,17 @@ Container based tests
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The Docker testing framework in QEMU utilizes public Docker images to build and
|
The container testing framework in QEMU utilizes public images to
|
||||||
test QEMU in predefined and widely accessible Linux environments. This makes
|
build and test QEMU in predefined and widely accessible Linux
|
||||||
it possible to expand the test coverage across distros, toolchain flavors and
|
environments. This makes it possible to expand the test coverage
|
||||||
library versions.
|
across distros, toolchain flavors and library versions. The support
|
||||||
|
was originally written for Docker although we also support Podman as
|
||||||
|
an alternative container runtime. Although the many of the target
|
||||||
|
names and scripts are prefixed with "docker" the system will
|
||||||
|
automatically run on whichever is configured.
|
||||||
|
|
||||||
Prerequisites
|
Docker Prerequisites
|
||||||
-------------
|
--------------------
|
||||||
|
|
||||||
Install "docker" with the system package manager and start the Docker service
|
Install "docker" with the system package manager and start the Docker service
|
||||||
on your development machine, then make sure you have the privilege to run
|
on your development machine, then make sure you have the privilege to run
|
||||||
|
@ -316,26 +320,53 @@ Note that any one of above configurations makes it possible for the user to
|
||||||
exploit the whole host with Docker bind mounting or other privileged
|
exploit the whole host with Docker bind mounting or other privileged
|
||||||
operations. So only do it on development machines.
|
operations. So only do it on development machines.
|
||||||
|
|
||||||
Quickstart
|
Podman Prerequisites
|
||||||
----------
|
--------------------
|
||||||
|
|
||||||
From source tree, type ``make docker`` to see the help. Testing can be started
|
Install "podman" with the system package manager.
|
||||||
without configuring or building QEMU (``configure`` and ``make`` are done in
|
|
||||||
the container, with parameters defined by the make target):
|
|
||||||
|
|
||||||
.. code::
|
.. code::
|
||||||
|
|
||||||
make docker-test-build@min-glib
|
$ sudo dnf install podman
|
||||||
|
$ podman ps
|
||||||
|
|
||||||
This will create a container instance using the ``min-glib`` image (the image
|
The last command should print an empty table, to verify the system is ready.
|
||||||
|
|
||||||
|
Quickstart
|
||||||
|
----------
|
||||||
|
|
||||||
|
From source tree, type ``make docker-help`` to see the help. Testing
|
||||||
|
can be started without configuring or building QEMU (``configure`` and
|
||||||
|
``make`` are done in the container, with parameters defined by the
|
||||||
|
make target):
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
make docker-test-build@centos8
|
||||||
|
|
||||||
|
This will create a container instance using the ``centos8`` image (the image
|
||||||
is downloaded and initialized automatically), in which the ``test-build`` job
|
is downloaded and initialized automatically), in which the ``test-build`` job
|
||||||
is executed.
|
is executed.
|
||||||
|
|
||||||
|
Registry
|
||||||
|
--------
|
||||||
|
|
||||||
|
The QEMU project has a container registry hosted by GitLab at
|
||||||
|
``registry.gitlab.com/qemu-project/qemu`` which will automatically be
|
||||||
|
used to pull in pre-built layers. This avoids unnecessary strain on
|
||||||
|
the distro archives created by multiple developers running the same
|
||||||
|
container build steps over and over again. This can be overridden
|
||||||
|
locally by using the ``NOCACHE`` build option:
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
make docker-image-debian10 NOCACHE=1
|
||||||
|
|
||||||
Images
|
Images
|
||||||
------
|
------
|
||||||
|
|
||||||
Along with many other images, the ``min-glib`` image is defined in a Dockerfile
|
Along with many other images, the ``centos8`` image is defined in a Dockerfile
|
||||||
in ``tests/docker/dockerfiles/``, called ``min-glib.docker``. ``make docker``
|
in ``tests/docker/dockerfiles/``, called ``centos8.docker``. ``make docker-help``
|
||||||
command will list all the available images.
|
command will list all the available images.
|
||||||
|
|
||||||
To add a new image, simply create a new ``.docker`` file under the
|
To add a new image, simply create a new ``.docker`` file under the
|
||||||
|
@ -355,7 +386,7 @@ QEMU. Docker tests are the executables under ``tests/docker`` named
|
||||||
library, ``tests/docker/common.rc``, which provides helpers to find the QEMU
|
library, ``tests/docker/common.rc``, which provides helpers to find the QEMU
|
||||||
source and build it.
|
source and build it.
|
||||||
|
|
||||||
The full list of tests is printed in the ``make docker`` help.
|
The full list of tests is printed in the ``make docker-help`` help.
|
||||||
|
|
||||||
Debugging a Docker test failure
|
Debugging a Docker test failure
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue