[PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests

Daniel P. Berrangé posted 4 patches 1 month, 1 week ago
Maintainers: "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <philmd@linaro.org>, Thomas Huth <thuth@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Daniel P. Berrangé 1 month, 1 week ago
CI is only exercising the qcow2 'auto' tests currently. As a result we
get no exposure of changes which cause regressions in other block format
drivers.

This adds new CI jobs for each block format, that will run the target
'make check-block-$FORMAT'. The jobs are separate so that we have the
ability to make each formats gating or not, depending on their level
of reliability.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 .gitlab-ci.d/buildtest.yml | 63 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
index 0502094b9a..e4ee48cf9e 100644
--- a/.gitlab-ci.d/buildtest.yml
+++ b/.gitlab-ci.d/buildtest.yml
@@ -176,6 +176,69 @@ build-system-centos:
       x86_64-softmmu rx-softmmu sh4-softmmu
     MAKE_CHECK_ARGS: check-build
 
+check-block-raw-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-raw
+
+check-block-qcow2-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-qcow2
+
+check-block-vpc-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-vpc
+
+check-block-vmdk-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-vmdk
+
+check-block-qed-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-qed
+
+check-block-luks-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-luks
+
+check-block-nbd-centos:
+  extends: .native_test_job_template
+  needs:
+    - job: build-system-centos
+      artifacts: true
+  variables:
+    IMAGE: centos9
+    MAKE_CHECK_ARGS: check-block-nbd
+
 # Previous QEMU release. Used for cross-version migration tests.
 build-previous-qemu:
   extends: .native_build_job_template
-- 
2.50.1


Re: [PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Thomas Huth 1 month ago
On 08/10/2025 13.35, Daniel P. Berrangé wrote:
> CI is only exercising the qcow2 'auto' tests currently. As a result we
> get no exposure of changes which cause regressions in other block format
> drivers.
> 
> This adds new CI jobs for each block format, that will run the target
> 'make check-block-$FORMAT'. The jobs are separate so that we have the
> ability to make each formats gating or not, depending on their level
> of reliability.

Some of the jobs seem to be quite quick, though, only 5 minutes and less:

  https://gitlab.com/berrange/qemu/-/jobs/11633680698
  https://gitlab.com/berrange/qemu/-/jobs/11633680704
  https://gitlab.com/berrange/qemu/-/jobs/11633680694

I think I'd prefer to see them rather merged into one job, to avoid that we 
waste too much time with setting up the container each time. We can still 
sort out flaky parts into separate jobs later if necessary.

  Thomas


Re: [PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Daniel P. Berrangé 1 month ago
On Fri, Oct 10, 2025 at 01:55:28PM +0200, Thomas Huth wrote:
> On 08/10/2025 13.35, Daniel P. Berrangé wrote:
> > CI is only exercising the qcow2 'auto' tests currently. As a result we
> > get no exposure of changes which cause regressions in other block format
> > drivers.
> > 
> > This adds new CI jobs for each block format, that will run the target
> > 'make check-block-$FORMAT'. The jobs are separate so that we have the
> > ability to make each formats gating or not, depending on their level
> > of reliability.
> 
> Some of the jobs seem to be quite quick, though, only 5 minutes and less:
> 
>  https://gitlab.com/berrange/qemu/-/jobs/11633680698
>  https://gitlab.com/berrange/qemu/-/jobs/11633680704
>  https://gitlab.com/berrange/qemu/-/jobs/11633680694
> 
> I think I'd prefer to see them rather merged into one job, to avoid that we
> waste too much time with setting up the container each time. We can still
> sort out flaky parts into separate jobs later if necessary.

The container setup / job prep is not a significant time sink  - just
at the 1 minute mark. I wanted to have separate jobs per backend so
that the pipeline dashboard gives an informative summary of which
block backends are impacted by the change, rather than having to
search the logs to discover it.

Flaky parts shouldn't be separate jobs  - the tests should either be
fixed or removed, because unreliable tests just end up being ignored,
leading to regressions being missed. 

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 :|


Re: [PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Eric Blake 1 month, 1 week ago
On Wed, Oct 08, 2025 at 12:35:52PM +0100, Daniel P. Berrangé wrote:
> CI is only exercising the qcow2 'auto' tests currently. As a result we
> get no exposure of changes which cause regressions in other block format
> drivers.
> 
> This adds new CI jobs for each block format, that will run the target
> 'make check-block-$FORMAT'. The jobs are separate so that we have the
> ability to make each formats gating or not, depending on their level
> of reliability.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  .gitlab-ci.d/buildtest.yml | 63 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 63 insertions(+)

The idea makes sense to me.

Did you have a link a URL of a CI run that failed tests on NBD, where
I might be able to help make the tests more deterministic?

> 
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index 0502094b9a..e4ee48cf9e 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -176,6 +176,69 @@ build-system-centos:
>        x86_64-softmmu rx-softmmu sh4-softmmu
>      MAKE_CHECK_ARGS: check-build
>  

> +
> +check-block-nbd-centos:
> +  extends: .native_test_job_template
> +  needs:
> +    - job: build-system-centos
> +      artifacts: true
> +  variables:
> +    IMAGE: centos9
> +    MAKE_CHECK_ARGS: check-block-nbd
> +
>  # Previous QEMU release. Used for cross-version migration tests.
>  build-previous-qemu:
>    extends: .native_build_job_template
> -- 
> 2.50.1
> 
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org


Re: [PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Daniel P. Berrangé 1 month, 1 week ago
On Wed, Oct 08, 2025 at 10:57:45AM -0500, Eric Blake wrote:
> On Wed, Oct 08, 2025 at 12:35:52PM +0100, Daniel P. Berrangé wrote:
> > CI is only exercising the qcow2 'auto' tests currently. As a result we
> > get no exposure of changes which cause regressions in other block format
> > drivers.
> > 
> > This adds new CI jobs for each block format, that will run the target
> > 'make check-block-$FORMAT'. The jobs are separate so that we have the
> > ability to make each formats gating or not, depending on their level
> > of reliability.
> > 
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > ---
> >  .gitlab-ci.d/buildtest.yml | 63 ++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 63 insertions(+)
> 
> The idea makes sense to me.
> 
> Did you have a link a URL of a CI run that failed tests on NBD, where
> I might be able to help make the tests more deterministic?

Its the one in the cover letter - the nbd job is

  https://gitlab.com/berrange/qemu/-/jobs/11633680715


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 :|


Re: [PATCH RFC/WIP 4/4] gitlab: add jobs for thorough block tests
Posted by Eric Blake 1 month ago
On Wed, Oct 08, 2025 at 05:23:10PM +0100, Daniel P. Berrangé wrote:
> On Wed, Oct 08, 2025 at 10:57:45AM -0500, Eric Blake wrote:
> > On Wed, Oct 08, 2025 at 12:35:52PM +0100, Daniel P. Berrangé wrote:
> > > CI is only exercising the qcow2 'auto' tests currently. As a result we
> > > get no exposure of changes which cause regressions in other block format
> > > drivers.
> > > 
> > > This adds new CI jobs for each block format, that will run the target
> > > 'make check-block-$FORMAT'. The jobs are separate so that we have the
> > > ability to make each formats gating or not, depending on their level
> > > of reliability.
> > > 
> > > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> > > ---
> > >  .gitlab-ci.d/buildtest.yml | 63 ++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 63 insertions(+)
> > 
> > The idea makes sense to me.
> > 
> > Did you have a link a URL of a CI run that failed tests on NBD, where
> > I might be able to help make the tests more deterministic?
> 
> Its the one in the cover letter - the nbd job is
> 
>   https://gitlab.com/berrange/qemu/-/jobs/11633680715

I finally managed to run 'git bisect' on an old enough version to
track down two of the NBD failures, broken since v9.0.0:

https://lists.gnu.org/archive/html/qemu-devel/2025-10/msg03063.html

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.
Virtualization:  qemu.org | libguestfs.org