All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.