v2: changelog: - s/migration-common/test-framework/ - call hooks migrate_hook_start|end_* - added migration-qmp.h - minor stuff
Refactor migration-test.c and migration-helpers.c into multiple smaller files structured like so: qtest/migration/ test-framework.h test-framework.c - core tests infrastructure: migrate_start|end, *_common, wait_for_*, check_guests_ram, etc. migration-util.h migration-util.c - general utilities, equivalent to migration-helpers.c migration-qmp.h migration-qmp.c - utilities for querying information via QMP bootfile.h - formerly migration-test.h, the old name was confusing bootfile.c - the guest code # test code, without main() compression-tests.c cpr-tests.c file-tests.c misc-tests.c postcopy-tests.c precopy-tests.c tls-tests.c qtest/ migration/ - the directory above # actual glib tests, with main() migration-test.c - all tests migration-test-smoke.c - a subset of smoke tests from each test group The 'smoke' test runs for every TCG target while the full test runs only if KVM is available. This saves ~3 minutes with make -j1 in a build with all 4 migration targets. This strategy keeps the full coverage as long as someone is running the tests in a KVM host, which I think is fair as migrating KVM guests is the main use for migration. Developers can still force the full set to run on TCG by calling: ./migration-test -m thorough $ arch x86_64 $ make -j16 check-qtest-migration ... 1/8 qemu:qtest+qtest-x86_64+qtest-migration / qtest-x86_64/migration-test-smoke SKIP 0.02s 2/8 qemu:qtest+qtest-ppc64+qtest-migration / qtest-ppc64/migration-test SKIP 0.02s 3/8 qemu:qtest+qtest-aarch64+qtest-migration / qtest-aarch64/migration-test SKIP 0.02s 4/8 qemu:qtest+qtest-s390x+qtest-migration / qtest-s390x/migration-test SKIP 0.02s 5/8 qemu:qtest+qtest-s390x+qtest-migration / qtest-s390x/migration-test-smoke OK 16.31s 14 subtests passed 6/8 qemu:qtest+qtest-ppc64+qtest-migration / qtest-ppc64/migration-test-smoke OK 19.81s 14 subtests passed 7/8 qemu:qtest+qtest-aarch64+qtest-migration / qtest-aarch64/migration-test-smoke OK 26.05s 14 subtests passed 8/8 qemu:qtest+qtest-x86_64+qtest-migration / qtest-x86_64/migration-test OK 81.17s 53 subtests passed CI run: https://gitlab.com/farosas/qemu/-/pipelines/1540922505 v1: https://lore.kernel.org/r/20241105180837.5990-1-faro...@suse.de v0: https://lore.kernel.org/r/20241017143211.17771-1-faro...@suse.de Fabiano Rosas (22): tests/qtest/migration: Fix indentations tests/qtest/migration: Standardize hook names tests/qtest/migration: Stop calling everything "test" tests/migration: Disambiguate guestperf vs. a-b tests/qtest/migration: Move bootfile code to its own file tests/qtest/migration: Move qmp helpers to a separate file tests/qtest/migration: Rename migration-helpers.c tests/qtest/migration: Move ufd_version_check to utils tests/qtest/migration: Move kvm_dirty_ring_supported to utils tests/qtest/migration: Isolate test initialization tests/qtest/migration: Move common test code tests/qtest/migration: Split TLS tests from migration-test.c tests/qtest/migration: Split compression tests from migration-test.c tests/qtest/migration: Split postcopy tests tests/qtest/migration: Split file tests tests/qtest/migration: Split precopy tests tests/qtest/migration: Split CPR tests tests/qtest/migration: Split validation tests + misc tests/qtest/migration: Add migration-test-smoke tests/qtest/migration: Pick smoke tests tests/qtest: Add support for check-qtest-<subsystem> docs: Add migration tests documentation MAINTAINERS | 5 +- docs/devel/testing/index.rst | 1 + docs/devel/testing/main.rst | 12 + docs/devel/testing/migration.rst | 261 ++ docs/devel/testing/qtest.rst | 1 + tests/meson.build | 2 +- .../guestperf-batch.py | 0 .../guestperf-plot.py | 0 .../guestperf.py | 0 .../guestperf/__init__.py | 0 .../guestperf/comparison.py | 0 .../guestperf/engine.py | 0 .../guestperf/hardware.py | 0 .../guestperf/plot.py | 0 .../guestperf/progress.py | 0 .../guestperf/report.py | 0 .../guestperf/scenario.py | 0 .../guestperf/shell.py | 0 .../guestperf/timings.py | 0 .../initrd-stress.sh | 0 .../meson.build | 0 .../{migration => migration-stress}/stress.c | 0 tests/qtest/meson.build | 46 +- tests/qtest/migration-test-smoke.c | 39 + tests/qtest/migration-test.c | 4029 +---------------- tests/{ => qtest}/migration/Makefile | 0 tests/{ => qtest}/migration/aarch64/Makefile | 0 .../migration/aarch64/a-b-kernel.S | 0 .../migration/aarch64/a-b-kernel.h | 0 tests/qtest/migration/bootfile.c | 70 + .../migration/bootfile.h} | 9 +- tests/qtest/migration/compression-tests.c | 244 + tests/qtest/migration/cpr-tests.c | 65 + tests/qtest/migration/file-tests.c | 338 ++ tests/{ => qtest}/migration/i386/Makefile | 0 .../migration/i386/a-b-bootblock.S | 0 .../migration/i386/a-b-bootblock.h | 0 .../migration-qmp.c} | 567 ++- tests/qtest/migration/migration-qmp.h | 46 + tests/qtest/migration/migration-util.c | 362 ++ .../migration-util.h} | 30 +- tests/qtest/migration/misc-tests.c | 280 ++ tests/qtest/migration/postcopy-tests.c | 114 + tests/{ => qtest}/migration/ppc64/Makefile | 0 .../{ => qtest}/migration/ppc64/a-b-kernel.S | 0 .../{ => qtest}/migration/ppc64/a-b-kernel.h | 0 tests/qtest/migration/precopy-tests.c | 1012 +++++ tests/{ => qtest}/migration/s390x/Makefile | 0 tests/{ => qtest}/migration/s390x/a-b-bios.c | 0 tests/{ => qtest}/migration/s390x/a-b-bios.h | 0 tests/qtest/migration/test-framework.c | 969 ++++ tests/qtest/migration/test-framework.h | 236 + tests/qtest/migration/tls-tests.c | 797 ++++ tests/qtest/virtio-net-failover.c | 3 +- 54 files changed, 5190 insertions(+), 4348 deletions(-) create mode 100644 docs/devel/testing/migration.rst rename tests/{migration => migration-stress}/guestperf-batch.py (100%) rename tests/{migration => migration-stress}/guestperf-plot.py (100%) rename tests/{migration => migration-stress}/guestperf.py (100%) rename tests/{migration => migration-stress}/guestperf/__init__.py (100%) rename tests/{migration => migration-stress}/guestperf/comparison.py (100%) rename tests/{migration => migration-stress}/guestperf/engine.py (100%) rename tests/{migration => migration-stress}/guestperf/hardware.py (100%) rename tests/{migration => migration-stress}/guestperf/plot.py (100%) rename tests/{migration => migration-stress}/guestperf/progress.py (100%) rename tests/{migration => migration-stress}/guestperf/report.py (100%) rename tests/{migration => migration-stress}/guestperf/scenario.py (100%) rename tests/{migration => migration-stress}/guestperf/shell.py (100%) rename tests/{migration => migration-stress}/guestperf/timings.py (100%) rename tests/{migration => migration-stress}/initrd-stress.sh (100%) rename tests/{migration => migration-stress}/meson.build (100%) rename tests/{migration => migration-stress}/stress.c (100%) create mode 100644 tests/qtest/migration-test-smoke.c rename tests/{ => qtest}/migration/Makefile (100%) rename tests/{ => qtest}/migration/aarch64/Makefile (100%) rename tests/{ => qtest}/migration/aarch64/a-b-kernel.S (100%) rename tests/{ => qtest}/migration/aarch64/a-b-kernel.h (100%) create mode 100644 tests/qtest/migration/bootfile.c rename tests/{migration/migration-test.h => qtest/migration/bootfile.h} (85%) create mode 100644 tests/qtest/migration/compression-tests.c create mode 100644 tests/qtest/migration/cpr-tests.c create mode 100644 tests/qtest/migration/file-tests.c rename tests/{ => qtest}/migration/i386/Makefile (100%) rename tests/{ => qtest}/migration/i386/a-b-bootblock.S (100%) rename tests/{ => qtest}/migration/i386/a-b-bootblock.h (100%) rename tests/qtest/{migration-helpers.c => migration/migration-qmp.c} (51%) create mode 100644 tests/qtest/migration/migration-qmp.h create mode 100644 tests/qtest/migration/migration-util.c rename tests/qtest/{migration-helpers.h => migration/migration-util.h} (67%) create mode 100644 tests/qtest/migration/misc-tests.c create mode 100644 tests/qtest/migration/postcopy-tests.c rename tests/{ => qtest}/migration/ppc64/Makefile (100%) rename tests/{ => qtest}/migration/ppc64/a-b-kernel.S (100%) rename tests/{ => qtest}/migration/ppc64/a-b-kernel.h (100%) create mode 100644 tests/qtest/migration/precopy-tests.c rename tests/{ => qtest}/migration/s390x/Makefile (100%) rename tests/{ => qtest}/migration/s390x/a-b-bios.c (100%) rename tests/{ => qtest}/migration/s390x/a-b-bios.h (100%) create mode 100644 tests/qtest/migration/test-framework.c create mode 100644 tests/qtest/migration/test-framework.h create mode 100644 tests/qtest/migration/tls-tests.c base-commit: 134b443512825bed401b6e141447b8cdc22d2efe -- 2.35.3