[Libguestfs] [libnbd PATCH 0/5] Introduce automated testing using GitLab CI

Martin Kletzander mkletzan at redhat.com
Thu May 6 11:30:05 UTC 2021


This is reworked version of

  https://listman.redhat.com/archives/libguestfs/2021-March/msg00134.html

with more packages installed so that more code paths are tested, also some fixes
in the code (mostly requirements).

There are still some things that fail.

FreeBSD
=======

The build fails because there is no fallocate() there.

Many platforms (those that have nbd-server in repositories)
===========================================================

interop/interop-nbd-server fails with:

  Error: inetd mode requires syslog
  Exiting.

which makes sense as it is run with port 0, but how to check for whether it is
compiled with or without syslog (so that we know to skip the test) or whether it
is something else that is missing (capabilities in a container) is beyond me.

interop/list-exports-nbd-server gets stuck and in the CI times out the whole
test suite.  Locally I need to manually exec into the container:

  podman exec -itu bash

and I see the nbd-server is just not doing anything.  After killing it the test
ends and fails.  I did not debug nbd-server for this, maybe it is again some
requisite that is missing and we are not checking for it (capability, nbd module
access, etc.), I do not know.


There are also some skips that I did not go into any more after trying to figure
out every "... no" in config.log:

Both interop-qemu-nbd-tls-certs and interop-qemu-nbd-tls-psk get skipped because
they are missing the keys, but I presume those are supposed to be generated.

I think that all these can be figured out after the final patch is merged so
that the CI runs truly automatically.  I am posting it for review though as I am
not sure the solutions in first four patches are the preferred ones.


Martin Kletzander (5):
  Fix test requirements
  Change golang/run_tests.sh shebang to bash
  libev: Check for old compiler
  golang: Check for module support
  Introduction of automated testing

 configure.ac                                  |  26 +-
 Makefile.am                                   |   1 +
 tests/functions.sh.in                         |  21 +
 interop/dirty-bitmap.sh                       |   4 +-
 .gitlab-ci.yml                                | 479 ++++++++++++++++++
 ci/build_script.sh                            |  43 ++
 ci/cirrus/build.yml                           |  22 +
 ci/cirrus/freebsd-12.vars                     |  14 +
 ci/cirrus/freebsd-current.vars                |  14 +
 ci/cirrus/macos-11.vars                       |  14 +
 ci/cirrus/refresh                             |  22 +
 ci/containers/README.rst                      |  14 +
 ci/containers/centos-8.Dockerfile             |  61 +++
 ci/containers/centos-stream-8.Dockerfile      |  61 +++
 .../debian-10-cross-aarch64.Dockerfile        |  86 ++++
 .../debian-10-cross-armv6l.Dockerfile         |  86 ++++
 .../debian-10-cross-armv7l.Dockerfile         |  86 ++++
 ci/containers/debian-10-cross-i686.Dockerfile |  86 ++++
 ci/containers/debian-10-cross-mips.Dockerfile |  86 ++++
 .../debian-10-cross-mips64el.Dockerfile       |  86 ++++
 .../debian-10-cross-mipsel.Dockerfile         |  86 ++++
 .../debian-10-cross-ppc64le.Dockerfile        |  86 ++++
 .../debian-10-cross-s390x.Dockerfile          |  86 ++++
 ci/containers/debian-10.Dockerfile            |  64 +++
 .../debian-sid-cross-aarch64.Dockerfile       |  86 ++++
 .../debian-sid-cross-armv6l.Dockerfile        |  86 ++++
 .../debian-sid-cross-armv7l.Dockerfile        |  86 ++++
 .../debian-sid-cross-i686.Dockerfile          |  86 ++++
 .../debian-sid-cross-mips64el.Dockerfile      |  86 ++++
 .../debian-sid-cross-mipsel.Dockerfile        |  86 ++++
 .../debian-sid-cross-ppc64le.Dockerfile       |  86 ++++
 .../debian-sid-cross-s390x.Dockerfile         |  86 ++++
 ci/containers/debian-sid.Dockerfile           |  64 +++
 ci/containers/fedora-33.Dockerfile            |  68 +++
 ci/containers/fedora-34.Dockerfile            |  68 +++
 .../fedora-rawhide-cross-mingw32.Dockerfile   |  71 +++
 .../fedora-rawhide-cross-mingw64.Dockerfile   |  71 +++
 ci/containers/fedora-rawhide.Dockerfile       |  69 +++
 ci/containers/opensuse-leap-152.Dockerfile    |  56 ++
 ci/containers/opensuse-tumbleweed.Dockerfile  |  57 +++
 ci/containers/refresh                         |  42 ++
 ci/containers/ubuntu-1804.Dockerfile          |  62 +++
 ci/containers/ubuntu-2004.Dockerfile          |  64 +++
 copy/copy-block-to-nbd.sh                     |   1 +
 copy/copy-nbd-to-block.sh                     |   1 +
 copy/copy-nbd-to-nbd.sh                       |   1 +
 copy/copy-nbd-to-small-block-error.sh         |   1 +
 copy/copy-tls.sh                              |   1 +
 fuse/test-file-mode.sh                        |   1 +
 fuse/test-nbdkit.sh                           |   1 +
 fuse/test-qcow2.sh                            |   1 +
 golang/run-tests.sh                           |   2 +-
 info/info-map-qemu-dirty-bitmap.sh            |   4 +-
 53 files changed, 3022 insertions(+), 6 deletions(-)
 create mode 100644 .gitlab-ci.yml
 create mode 100755 ci/build_script.sh
 create mode 100644 ci/cirrus/build.yml
 create mode 100644 ci/cirrus/freebsd-12.vars
 create mode 100644 ci/cirrus/freebsd-current.vars
 create mode 100644 ci/cirrus/macos-11.vars
 create mode 100755 ci/cirrus/refresh
 create mode 100644 ci/containers/README.rst
 create mode 100644 ci/containers/centos-8.Dockerfile
 create mode 100644 ci/containers/centos-stream-8.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-aarch64.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-armv6l.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-armv7l.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-i686.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-mips.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-mips64el.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-mipsel.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-ppc64le.Dockerfile
 create mode 100644 ci/containers/debian-10-cross-s390x.Dockerfile
 create mode 100644 ci/containers/debian-10.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-aarch64.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-armv6l.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-armv7l.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-i686.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-mips64el.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-mipsel.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-ppc64le.Dockerfile
 create mode 100644 ci/containers/debian-sid-cross-s390x.Dockerfile
 create mode 100644 ci/containers/debian-sid.Dockerfile
 create mode 100644 ci/containers/fedora-33.Dockerfile
 create mode 100644 ci/containers/fedora-34.Dockerfile
 create mode 100644 ci/containers/fedora-rawhide-cross-mingw32.Dockerfile
 create mode 100644 ci/containers/fedora-rawhide-cross-mingw64.Dockerfile
 create mode 100644 ci/containers/fedora-rawhide.Dockerfile
 create mode 100644 ci/containers/opensuse-leap-152.Dockerfile
 create mode 100644 ci/containers/opensuse-tumbleweed.Dockerfile
 create mode 100755 ci/containers/refresh
 create mode 100644 ci/containers/ubuntu-1804.Dockerfile
 create mode 100644 ci/containers/ubuntu-2004.Dockerfile

-- 
2.31.1




More information about the Libguestfs mailing list