From: Peter Xu <peterx@redhat.com>
To: Fabiano Rosas <farosas@suse.de>
Cc: qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Fiona Ebner" <f.ebner@proxmox.com>,
"Het Gala" <het.gala@nutanix.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Wainer dos Santos Moschetta" <wainersm@redhat.com>,
"Beraldo Leal" <bleal@redhat.com>
Subject: Re: [RFC PATCH 4/4] ci: Add the new migration device tests
Date: Mon, 27 May 2024 17:17:51 -0400 [thread overview]
Message-ID: <ZlT4f368xO8fXsUY@x1n> (raw)
In-Reply-To: <20240523201922.28007-5-farosas@suse.de>
On Thu, May 23, 2024 at 05:19:22PM -0300, Fabiano Rosas wrote:
> We have two new migration tests that check cross version
> compatibility. One uses the vmstate-static-checker.py script to
> compare the vmstate structures from two different QEMU versions. The
> other runs a simple migration with a few devices present in the VM, to
> catch obvious breakages.
>
> Add both tests to the migration-compat-common job.
>
> Signed-off-by: Fabiano Rosas <farosas@suse.de>
> ---
> .gitlab-ci.d/buildtest.yml | 43 +++++++++++++++++++++++++++++++-------
> 1 file changed, 36 insertions(+), 7 deletions(-)
>
> diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml
> index 91c57efded..bc7ac35983 100644
> --- a/.gitlab-ci.d/buildtest.yml
> +++ b/.gitlab-ci.d/buildtest.yml
> @@ -202,18 +202,47 @@ build-previous-qemu:
> needs:
> - job: build-previous-qemu
> - job: build-system-opensuse
> - # The old QEMU could have bugs unrelated to migration that are
> - # already fixed in the current development branch, so this test
> - # might fail.
> + # This test is allowed to fail because:
> + #
> + # - The old QEMU could have bugs unrelated to migration that are
> + # already fixed in the current development branch.
Did you ever hit a real failure with this? I'm wondering whether we can
remove this allow_failure thing.
> + #
> + # - The vmstate-static-checker script trips on renames and other
> + # backward-compatible changes to the vmstate structs.
I think I keep my preference per last time we talked on this. :)
I still think it's too early to involve a test that can report false
negative. I'd still keep running this before soft-freeze like I used to
do, throw issues to others and urge them to fix before release. Per my
previous experience that doesn't consume me a lot of time, and it's not
common to see issues either.
So I want people to really pay attention when someone sees a migration CI
test failed, rather than we help people form the habit in "oh migration CI
failed again? I think that's fine, it allows failing anyway".
So far I still don't see as much benefit to adding this if we need to pay
for the other false negative issue. I'll fully support it if e.g. we can
fix the tool to avoid reporting false negatives, but that may take effort
that I didn't check.
> allow_failure: true
> variables:
> IMAGE: opensuse-leap
> MAKE_CHECK_ARGS: check-build
> script:
> - # Use the migration-tests from the older QEMU tree. This avoids
> - # testing an old QEMU against new features/tests that it is not
> - # compatible with.
> - - cd build-previous
> + - cd build
> + # device state static test: Tests the vmstate structures for
> + # compatibility across QEMU versions. Uses the latest version of
> + # the tests.
> + # old to new
> + - PYTHON=pyvenv/bin/python3
> + QTEST_QEMU_BINARY_SRC=../build-previous/qemu-system-${TARGET}
> + QTEST_QEMU_BINARY=./qemu-system-${TARGET}
> + ./tests/qtest/migration-test -p /${TARGET}/migration/vmstate-checker-script
> + # new to old skipped because vmstate version bumps are always
> + # backward incompatible.
> +
> + # device state runtime test: Performs a cross-version migration
> + # with a select list of devices (see DEFAULT_DEVICES in
> + # migration-test.c). Using the multifd tcp test here, but any will
> + # do.
> + # old to new
> + - QTEST_DEVICE_OPTS=all QTEST_QEMU_BINARY_SRC=../build-previous/qemu-system-${TARGET}
> + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test
> + -p /${TARGET}/migration/multifd/tcp/channels/plain/none
> + # new to old
> + - QTEST_DEVICE_OPTS=all QTEST_QEMU_BINARY_DST=../build-previous/qemu-system-${TARGET}
> + QTEST_QEMU_BINARY=./qemu-system-${TARGET} ./tests/qtest/migration-test
> + -p /${TARGET}/migration/multifd/tcp/channels/plain/none
> +
> + # migration core tests: Use the migration-tests from the older
> + # QEMU tree. This avoids testing an old QEMU against new
> + # features/tests that it is not compatible with.
> + - cd ../build-previous
> # old to new
> - QTEST_QEMU_BINARY_SRC=./qemu-system-${TARGET}
> QTEST_QEMU_BINARY=../build/qemu-system-${TARGET} ./tests/qtest/migration-test
> --
> 2.35.3
>
--
Peter Xu
next prev parent reply other threads:[~2024-05-27 21:18 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-23 20:19 [RFC PATCH 0/4] migration-test: Device migration smoke tests Fabiano Rosas
2024-05-23 20:19 ` [RFC PATCH 1/4] tests/qtest/libqtest: Introduce another qtest_init version with no handshake Fabiano Rosas
2024-05-23 20:19 ` [RFC PATCH 2/4] tests/qtest/migration: Add a test that runs vmstate-static-checker Fabiano Rosas
2024-05-27 21:06 ` Peter Xu
2024-05-27 22:52 ` Fabiano Rosas
2024-05-28 15:52 ` Peter Xu
2024-05-23 20:19 ` [RFC PATCH 3/4] tests/qtest/migration: Add support for simple device tests Fabiano Rosas
2024-05-27 21:12 ` Peter Xu
2024-05-27 22:59 ` Fabiano Rosas
2024-05-28 15:35 ` Peter Xu
2024-05-23 20:19 ` [RFC PATCH 4/4] ci: Add the new migration " Fabiano Rosas
2024-05-27 21:17 ` Peter Xu [this message]
2024-05-27 23:59 ` Fabiano Rosas
2024-05-28 15:48 ` Peter Xu
2024-05-28 18:10 ` Fabiano Rosas
2024-05-28 18:52 ` Peter Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZlT4f368xO8fXsUY@x1n \
--to=peterx@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=bleal@redhat.com \
--cc=f.ebner@proxmox.com \
--cc=farosas@suse.de \
--cc=het.gala@nutanix.com \
--cc=marcandre.lureau@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
--cc=wainersm@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.