qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/22] tests/qtest: migration-test refactoring
@ 2024-11-05 18:08 Fabiano Rosas
  2024-11-05 18:08 ` [PATCH 01/22] tests/qtest/migration: Fix indentations Fabiano Rosas
                   ` (21 more replies)
  0 siblings, 22 replies; 42+ messages in thread
From: Fabiano Rosas @ 2024-11-05 18:08 UTC (permalink / raw)
  To: qemu-devel
  Cc: Peter Xu, Peter Maydell, Daniel P . Berrangé,
	Alex Bennée

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



^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2024-11-06 13:14 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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).