On Tue, Jul 12, 2022 at 02:44:36PM +0200, Erik Skultety wrote:
Currently we don't have much information on how testing is done
in
libvirt and the little we have is scattered among multiple files. This
patch creates a common landing page containing all important bits about
testing in libvirt, providing links to respective sections which
deserve their own articles.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
docs/meson.build | 1 +
docs/testing.rst | 176 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 177 insertions(+)
create mode 100644 docs/testing.rst
diff --git a/docs/meson.build b/docs/meson.build
index 0c7c54a75f..6d61e18385 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -105,6 +105,7 @@ docs_rst_files = [
'submitting-patches',
'support',
'testapi',
+ 'testing',
'testsuites',
'testtck',
'uri',
diff --git a/docs/testing.rst b/docs/testing.rst
new file mode 100644
index 0000000000..af0f334633
--- /dev/null
+++ b/docs/testing.rst
@@ -0,0 +1,176 @@
+=======
+Testing
+=======
+
+.. contents::
+
+Different types of tests are available to libvirt developers for testing a
+given libvirt release.
+
+Unit tests
+----------
+
+The unit test suite present in the source code is mainly used to test our
+XML parser/formatter, QEMU command line generator, QEMU capabilities probing,
+etc. It is run by developers before submitting patches upstream and is
+mandatory to pass for any contribution to be accepted upstream. One can run
+the test suite in the source tree with the following
+
+::
+
+ make check (libvirt 6.6.0 and older)
+
IMHO we can ignore documenting such old releases.
+::
+
+ ninja test (libvirt 6.7.0 and newer)
+
+
+Docker Prerequisites
+~~~~~~~~~~~~~~~~~~~~
+
+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
+Docker commands. Typically it means setting up passwordless ``sudo docker``
+command or login as root. For example:
+
+.. code::
+
+ $ sudo yum install docker
s/yum/dnf/ and perhaps also 'install -y'
+ $ # or `apt-get install docker` for Ubuntu, etc.
+ $ sudo systemctl start docker
+ $ sudo docker ps
+
+The last command should print an empty table, to verify the system is ready.
+
+An alternative method to set up permissions is by adding the current user to
+"docker" group and making the docker daemon socket file (by default
+``/var/run/docker.sock``) accessible to the group:
+
+.. code::
+
+ $ sudo groupadd docker
+ $ sudo usermod $USER -a -G docker
+ $ sudo chown :docker /var/run/docker.sock
+
+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
+operations. So only do it on development machines.
+
+Podman Prerequisites
+~~~~~~~~~~~~~~~~~~~~
+
+Install "podman" with the system package manager.
+
+.. code::
+
+ $ sudo dnf install podman
Also 'install -y'
+ $ podman ps
+
+The last command should print an empty table, to verify the system is ready.
Given it has much simpler setup, and doesn't open a local root shell
I'd suggest we document podman first, and explicitly recommend its
usage, over docker.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|