On Wed, Nov 06, 2024 at 10:05:59AM -0300, Fabiano Rosas wrote: > Daniel P. Berrangé <berra...@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 <faro...@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.
Ok, what you have proposed here is a clear improvement of the status quo, and doesn't block any of the suggestions I made. So lets just not complicate this patch series further. 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 :|