Refactor migration-test.c and migration-helpers.c into multiple
smaller files structured like so:
qtest/migration/
migration-common.c - test_precopy_common and similar
migration-common.h
migration-util.c - equivalent to migration-helpers.c
migration-qmp.c - utilities for querying information via QMP
migration-util.h
bootfile.c - the guest code
bootfile.h - formerly migration-test.h, the old name was confusing
# 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/1528477851
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
docs/devel/testing/index.rst | 1 +
docs/devel/testing/main.rst | 13 +
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 | 48 +-
tests/qtest/migration-test-smoke.c | 40 +
tests/qtest/migration-test.c | 4028 +----------------
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 | 243 +
tests/qtest/migration/cpr-tests.c | 64 +
tests/qtest/migration/file-tests.c | 336 ++
tests/{ => qtest}/migration/i386/Makefile | 0
.../migration/i386/a-b-bootblock.S | 0
.../migration/i386/a-b-bootblock.h | 0
tests/qtest/migration/migration-common.c | 963 ++++
tests/qtest/migration/migration-common.h | 234 +
.../migration-qmp.c} | 566 ++-
tests/qtest/migration/migration-util.c | 355 ++
.../migration-util.h} | 81 +-
tests/qtest/migration/misc-tests.c | 280 ++
tests/qtest/migration/postcopy-tests.c | 109 +
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 | 1003 ++++
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/tls-tests.c | 796 ++++
tests/qtest/virtio-net-failover.c | 2 +-
52 files changed, 5161 insertions(+), 4344 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%)
create mode 100644 tests/qtest/migration/migration-common.c
create mode 100644 tests/qtest/migration/migration-common.h
rename tests/qtest/{migration-helpers.c => migration/migration-qmp.c} (51%)
create mode 100644 tests/qtest/migration/migration-util.c
rename tests/qtest/{migration-helpers.h => migration/migration-util.h} (50%)
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/tls-tests.c
base-commit: 11b8920ed2093848f79f93d106afe8a69a61a523
--
2.35.3