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