qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Fabiano Rosas <farosas@suse.de>
To: "Daniel P. Berrangé" <berrange@redhat.com>
Cc: qemu-devel@nongnu.org, "Peter Xu" <peterx@redhat.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Alex Bennée" <alex.bennee@linaro.org>,
	"Laurent Vivier" <lvivier@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>
Subject: Re: [PATCH 12/22] tests/qtest/migration: Split TLS tests from migration-test.c
Date: Wed, 06 Nov 2024 10:05:59 -0300	[thread overview]
Message-ID: <87o72s1phk.fsf@suse.de> (raw)
In-Reply-To: <ZytP7hMbUkkDS1MX@redhat.com>

Daniel P. Berrangé <berrange@redhat.com> writes:

> On Tue, Nov 05, 2024 at 03:08:27PM -0300, Fabiano Rosas wrote:
>> The migration-test.c file has become unwieldy large. It's quite
>> confusing to navigate with all the test definitions mixed with hook
>> definitions. The TLS tests make this worse with ifdef'ery.
>> 
>> Since we're planning on having a smaller set of tests to run as smoke
>> testing on all architectures, I'm taking the time to split some tests
>> into their own file.
>> 
>> Move the TLS tests into a file of their own.
>> 
>> Signed-off-by: Fabiano Rosas <farosas@suse.de>
>> ---
>>  tests/qtest/meson.build                  |   8 +-
>>  tests/qtest/migration-test.c             | 788 +---------------------
>>  tests/qtest/migration/migration-common.h |   6 +
>>  tests/qtest/migration/tls-tests.c        | 790 +++++++++++++++++++++++
>>  4 files changed, 803 insertions(+), 789 deletions(-)
>>  create mode 100644 tests/qtest/migration/tls-tests.c
>
>
>> diff --git a/tests/qtest/migration/migration-common.h b/tests/qtest/migration/migration-common.h
>> index 8d0081c698..c546e92259 100644
>> --- a/tests/qtest/migration/tls-tests.c
>> +++ b/tests/qtest/migration/tls-tests.c
>
>
>> +
>> +void migration_test_add_tls(MigrationTestEnv *env)
>> +{
>> +    tmpfs = env->tmpfs;
>> +
>> +    migration_test_add("/migration/precopy/unix/tls/psk",
>> +                       test_precopy_unix_tls_psk);
>> +
>
> ...snip...
>
>> +}
>
> Looking at this, and considering the later patch which introduces
> 'make qtest-<subsystem>' support, I wonder if we actually need to
> have a single 'migration-test' binary. Why not just add a main()
> method to this  test-tests.c, and have a 'migration-test-tls'
> binary ?

I did that initially, but then I realised it duplicates the -qmp, -util
and -common helpers into every new test binary. With the current split,
that would be 7x.

Another point is that we can't then implement the smoke tests like in
this series, we'd have to make every migration-foo-test.c choose between
smoke or full tests individually. Which is doable, but it seemed against
your and Alex's suggestions of having 2 separate binaries.

If we're fine with the duplication in the build, I could go back to that
approach. Each main() function would need to look like this:
      
    if (g_test_thorough() || env->has_kvm) {
        /* add all tests */
        migration_test_add();
        migration_test_add();
        ...
    } else {
        /* only the smoke suite */
        migration_test_add_smoke();
    }

>
> "make qtest-migration" would provoide a way to run the same level
> of functionality seen when everything was in one 'migration-test'
> binary.

Yes... but not quite, because running all tests with gdb or valgrind
attached is something that I do frequently, e.g.:

PYTHON=$(which python3.11) \
QTEST_QEMU_BINARY_SRC=\'valgrind -q --leak-check=full --show-leak-kinds=definite,indirect \
--sim-hints=lax-ioctls --suppressions=${BASEDIR}/valgrind-suppressions ./qemu-system-${ARCH}\' \
QTEST_QEMU_BINARY=./qemu-system-${ARCH} ./tests/qtest/migration-test -r /${ARCH}/migration || exit 1

QTEST_QEMU_BINARY=./qemu-system-x86_64 QTEST_QEMU_BINARY_SRC='gdb -q
--ex "set pagination off" --ex "set print thread-events off" --ex
"handle SIGUSR1 noprint" --ex "handle SIGPIPE noprint" --ex "run" --ex
"quit \$_exitcode" --args ./qemu-system-x86_64'
./tests/qtest/migration-test

This could probably be done with meson directly, if that happens to fit
their opinionated view of the world, but I'd rather not delve into that.
On the other hand, maybe it's not a big deal and I can live with only
running a group of tests with the -r or -p flag instead of all of them.

>
> With regards,
> Daniel


  reply	other threads:[~2024-11-06 13:06 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-05 18:08 [PATCH 00/22] tests/qtest: migration-test refactoring Fabiano Rosas
2024-11-05 18:08 ` [PATCH 01/22] tests/qtest/migration: Fix indentations Fabiano Rosas
2024-11-06  9:24   ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 02/22] tests/qtest/migration: Standardize hook names Fabiano Rosas
2024-11-05 18:08 ` [PATCH 03/22] tests/qtest/migration: Stop calling everything "test" Fabiano Rosas
2024-11-06  9:29   ` Daniel P. Berrangé
2024-11-06 12:12     ` Fabiano Rosas
2024-11-05 18:08 ` [PATCH 04/22] tests/migration: Disambiguate guestperf vs. a-b Fabiano Rosas
2024-11-06  9:24   ` Daniel P. Berrangé
2024-11-06 12:11     ` Fabiano Rosas
2024-11-05 18:08 ` [PATCH 05/22] tests/qtest/migration: Move bootfile code to its own file Fabiano Rosas
2024-11-06 10:48   ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 06/22] tests/qtest/migration: Move qmp helpers to a separate file Fabiano Rosas
2024-11-06 10:52   ` Daniel P. Berrangé
2024-11-06 12:13     ` Fabiano Rosas
2024-11-05 18:08 ` [PATCH 07/22] tests/qtest/migration: Rename migration-helpers.c Fabiano Rosas
2024-11-05 18:08 ` [PATCH 08/22] tests/qtest/migration: Move ufd_version_check to utils Fabiano Rosas
2024-11-06 11:00   ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 09/22] tests/qtest/migration: Move kvm_dirty_ring_supported " Fabiano Rosas
2024-11-05 18:08 ` [PATCH 10/22] tests/qtest/migration: Isolate test initialization Fabiano Rosas
2024-11-06 11:02   ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 11/22] tests/qtest/migration: Move common test code Fabiano Rosas
2024-11-06 11:05   ` Daniel P. Berrangé
2024-11-06 12:26     ` Fabiano Rosas
2024-11-06 12:33       ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 12/22] tests/qtest/migration: Split TLS tests from migration-test.c Fabiano Rosas
2024-11-06 11:15   ` Daniel P. Berrangé
2024-11-06 13:05     ` Fabiano Rosas [this message]
2024-11-06 13:13       ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 13/22] tests/qtest/migration: Split compression " Fabiano Rosas
2024-11-05 18:08 ` [PATCH 14/22] tests/qtest/migration: Split postcopy tests Fabiano Rosas
2024-11-05 18:08 ` [PATCH 15/22] tests/qtest/migration: Split file tests Fabiano Rosas
2024-11-05 18:08 ` [PATCH 16/22] tests/qtest/migration: Split precopy tests Fabiano Rosas
2024-11-05 18:08 ` [PATCH 17/22] tests/qtest/migration: Split CPR tests Fabiano Rosas
2024-11-05 18:08 ` [PATCH 18/22] tests/qtest/migration: Split validation tests + misc Fabiano Rosas
2024-11-05 18:08 ` [PATCH 19/22] tests/qtest/migration: Add migration-test-smoke Fabiano Rosas
2024-11-05 18:08 ` [PATCH 20/22] tests/qtest/migration: Pick smoke tests Fabiano Rosas
2024-11-05 18:08 ` [PATCH 21/22] tests/qtest: Add support for check-qtest-<subsystem> Fabiano Rosas
2024-11-06 11:11   ` Daniel P. Berrangé
2024-11-06 12:40     ` Fabiano Rosas
2024-11-06 12:42       ` Daniel P. Berrangé
2024-11-05 18:08 ` [PATCH 22/22] docs: Add migration tests documentation Fabiano Rosas

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=87o72s1phk.fsf@suse.de \
    --to=farosas@suse.de \
    --cc=alex.bennee@linaro.org \
    --cc=berrange@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).