All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/9] Gitlab-CI, tests and docs
@ 2021-03-12 17:23 Thomas Huth
  2021-03-12 17:23 ` [PULL 1/9] tests: Move unit tests into a separate directory Thomas Huth
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

The following changes since commit 363fc963054d8e82cfd55fa9b9aa130692a8dbd7:

  Merge remote-tracking branch 'remotes/legoater/tags/pull-aspeed-20210309' into staging (2021-03-11 11:18:27 +0000)

are available in the Git repository at:

  https://gitlab.com/thuth/qemu.git tags/pull-request-2021-03-12

for you to fetch changes up to 33bf47291ed575847d7de26b503c50e72f5aa6c3:

  README: Add Documentation blurb (2021-03-12 15:46:30 +0100)

----------------------------------------------------------------
* Move unit and bench tests into separate directories
* Clean-up and improve gitlab-ci jobs
* Drop the non-working "check-speed" makefile target
* Minor documentation updates
----------------------------------------------------------------

John Snow (1):
  README: Add Documentation blurb

Paolo Bonzini (1):
  tests: remove "make check-speed" in favor of "make bench"

Thomas Huth (7):
  tests: Move unit tests into a separate directory
  tests: Move benchmarks into a separate folder
  gitlab-ci.yml: Move build-tools-and-docs-debian to a better place
  gitlab-ci.yml: Add some missing dependencies to the jobs
  gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled
    job
  gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old
    jobs
  MAINTAINERS: Merge the Gitlab-CI section into the generic CI section

 .gitlab-ci.yml                                |  95 +++-----
 MAINTAINERS                                   |  93 ++++----
 README.rst                                    |  11 +
 tests/Makefile.include                        |   8 +-
 tests/{ => bench}/atomic64-bench.c            |   0
 tests/{ => bench}/atomic_add-bench.c          |   0
 tests/{ => bench}/benchmark-crypto-cipher.c   |   0
 tests/{ => bench}/benchmark-crypto-hash.c     |   0
 tests/{ => bench}/benchmark-crypto-hmac.c     |   0
 tests/bench/meson.build                       |  34 +++
 tests/{ => bench}/qht-bench.c                 |   0
 tests/meson.build                             | 216 +-----------------
 tests/{ => unit}/check-block-qdict.c          |   0
 tests/{ => unit}/check-qdict.c                |   0
 tests/{ => unit}/check-qjson.c                |   0
 tests/{ => unit}/check-qlist.c                |   0
 tests/{ => unit}/check-qlit.c                 |   0
 tests/{ => unit}/check-qnull.c                |   0
 tests/{ => unit}/check-qnum.c                 |   0
 tests/{ => unit}/check-qobject.c              |   0
 tests/{ => unit}/check-qom-interface.c        |   0
 tests/{ => unit}/check-qom-proplist.c         |   0
 tests/{ => unit}/check-qstring.c              |   0
 tests/{ => unit}/crypto-tls-psk-helpers.c     |   0
 tests/{ => unit}/crypto-tls-psk-helpers.h     |   0
 tests/{ => unit}/crypto-tls-x509-helpers.c    |   0
 tests/{ => unit}/crypto-tls-x509-helpers.h    |   0
 tests/{ => unit}/io-channel-helpers.c         |   0
 tests/{ => unit}/io-channel-helpers.h         |   0
 tests/{ => unit}/iothread.c                   |   0
 tests/{ => unit}/iothread.h                   |   0
 tests/unit/meson.build                        | 184 +++++++++++++++
 tests/{ => unit}/pkix_asn1_tab.c              |   2 +-
 tests/{ => unit}/ptimer-test-stubs.c          |   0
 tests/{ => unit}/ptimer-test.c                |   0
 tests/{ => unit}/ptimer-test.h                |   0
 tests/{ => unit}/rcutorture.c                 |   0
 tests/{ => unit}/socket-helpers.c             |   0
 tests/{ => unit}/socket-helpers.h             |   0
 tests/{ => unit}/test-aio-multithread.c       |   0
 tests/{ => unit}/test-aio.c                   |   0
 tests/{ => unit}/test-authz-list.c            |   0
 tests/{ => unit}/test-authz-listfile.c        |   0
 tests/{ => unit}/test-authz-pam.c             |   0
 tests/{ => unit}/test-authz-simple.c          |   0
 tests/{ => unit}/test-base64.c                |   0
 tests/{ => unit}/test-bdrv-drain.c            |   0
 tests/{ => unit}/test-bdrv-graph-mod.c        |   0
 tests/{ => unit}/test-bitcnt.c                |   0
 tests/{ => unit}/test-bitmap.c                |   0
 tests/{ => unit}/test-bitops.c                |   0
 tests/{ => unit}/test-block-backend.c         |   0
 tests/{ => unit}/test-block-iothread.c        |   0
 tests/{ => unit}/test-blockjob-txn.c          |   0
 tests/{ => unit}/test-blockjob.c              |   0
 tests/{ => unit}/test-bufferiszero.c          |   0
 tests/{ => unit}/test-char.c                  |   0
 tests/{ => unit}/test-clone-visitor.c         |   0
 tests/{ => unit}/test-coroutine.c             |   0
 tests/{ => unit}/test-crypto-afsplit.c        |   0
 tests/{ => unit}/test-crypto-block.c          |   0
 tests/{ => unit}/test-crypto-cipher.c         |   0
 tests/{ => unit}/test-crypto-hash.c           |   0
 tests/{ => unit}/test-crypto-hmac.c           |   0
 tests/{ => unit}/test-crypto-ivgen.c          |   0
 tests/{ => unit}/test-crypto-pbkdf.c          |   0
 tests/{ => unit}/test-crypto-secret.c         |   0
 tests/{ => unit}/test-crypto-tlscredsx509.c   |   0
 tests/{ => unit}/test-crypto-tlssession.c     |   0
 tests/{ => unit}/test-crypto-xts.c            |   0
 tests/{ => unit}/test-cutils.c                |   0
 tests/{ => unit}/test-fdmon-epoll.c           |   0
 tests/{ => unit}/test-hbitmap.c               |   0
 tests/{ => unit}/test-image-locking.c         |   0
 tests/{ => unit}/test-int128.c                |   0
 tests/{ => unit}/test-io-channel-buffer.c     |   0
 tests/{ => unit}/test-io-channel-command.c    |   0
 tests/{ => unit}/test-io-channel-file.c       |   0
 tests/{ => unit}/test-io-channel-socket.c     |   0
 tests/{ => unit}/test-io-channel-tls.c        |   0
 tests/{ => unit}/test-io-task.c               |   0
 tests/{ => unit}/test-iov.c                   |   0
 tests/{ => unit}/test-keyval.c                |   0
 tests/{ => unit}/test-logging.c               |   0
 tests/{ => unit}/test-mul64.c                 |   0
 tests/{ => unit}/test-opts-visitor.c          |   0
 tests/{ => unit}/test-qapi-util.c             |   0
 tests/{ => unit}/test-qdev-global-props.c     |   0
 tests/{ => unit}/test-qdist.c                 |   0
 tests/{ => unit}/test-qemu-opts.c             |   0
 tests/{ => unit}/test-qga.c                   |   2 +-
 tests/{ => unit}/test-qgraph.c                |   4 +-
 tests/{ => unit}/test-qht.c                   |   0
 tests/{ => unit}/test-qmp-cmds.c              |   0
 tests/{ => unit}/test-qmp-event.c             |   0
 tests/{ => unit}/test-qobject-input-visitor.c |   0
 .../{ => unit}/test-qobject-output-visitor.c  |   0
 tests/{ => unit}/test-rcu-list.c              |   0
 tests/{ => unit}/test-rcu-simpleq.c           |   0
 tests/{ => unit}/test-rcu-slist.c             |   0
 tests/{ => unit}/test-rcu-tailq.c             |   0
 tests/{ => unit}/test-replication.c           |   0
 tests/{ => unit}/test-shift128.c              |   0
 tests/{ => unit}/test-string-input-visitor.c  |   0
 tests/{ => unit}/test-string-output-visitor.c |   0
 tests/{ => unit}/test-thread-pool.c           |   0
 tests/{ => unit}/test-throttle.c              |   0
 tests/{ => unit}/test-timed-average.c         |   0
 tests/{ => unit}/test-util-filemonitor.c      |   0
 tests/{ => unit}/test-util-sockets.c          |   0
 tests/{ => unit}/test-uuid.c                  |   0
 tests/{ => unit}/test-visitor-serialization.c |   0
 tests/{ => unit}/test-vmstate.c               |   0
 tests/{ => unit}/test-write-threshold.c       |   0
 tests/{ => unit}/test-x86-cpuid.c             |   0
 tests/{ => unit}/test-xbzrle.c                |   0
 116 files changed, 311 insertions(+), 338 deletions(-)
 rename tests/{ => bench}/atomic64-bench.c (100%)
 rename tests/{ => bench}/atomic_add-bench.c (100%)
 rename tests/{ => bench}/benchmark-crypto-cipher.c (100%)
 rename tests/{ => bench}/benchmark-crypto-hash.c (100%)
 rename tests/{ => bench}/benchmark-crypto-hmac.c (100%)
 create mode 100644 tests/bench/meson.build
 rename tests/{ => bench}/qht-bench.c (100%)
 rename tests/{ => unit}/check-block-qdict.c (100%)
 rename tests/{ => unit}/check-qdict.c (100%)
 rename tests/{ => unit}/check-qjson.c (100%)
 rename tests/{ => unit}/check-qlist.c (100%)
 rename tests/{ => unit}/check-qlit.c (100%)
 rename tests/{ => unit}/check-qnull.c (100%)
 rename tests/{ => unit}/check-qnum.c (100%)
 rename tests/{ => unit}/check-qobject.c (100%)
 rename tests/{ => unit}/check-qom-interface.c (100%)
 rename tests/{ => unit}/check-qom-proplist.c (100%)
 rename tests/{ => unit}/check-qstring.c (100%)
 rename tests/{ => unit}/crypto-tls-psk-helpers.c (100%)
 rename tests/{ => unit}/crypto-tls-psk-helpers.h (100%)
 rename tests/{ => unit}/crypto-tls-x509-helpers.c (100%)
 rename tests/{ => unit}/crypto-tls-x509-helpers.h (100%)
 rename tests/{ => unit}/io-channel-helpers.c (100%)
 rename tests/{ => unit}/io-channel-helpers.h (100%)
 rename tests/{ => unit}/iothread.c (100%)
 rename tests/{ => unit}/iothread.h (100%)
 create mode 100644 tests/unit/meson.build
 rename tests/{ => unit}/pkix_asn1_tab.c (99%)
 rename tests/{ => unit}/ptimer-test-stubs.c (100%)
 rename tests/{ => unit}/ptimer-test.c (100%)
 rename tests/{ => unit}/ptimer-test.h (100%)
 rename tests/{ => unit}/rcutorture.c (100%)
 rename tests/{ => unit}/socket-helpers.c (100%)
 rename tests/{ => unit}/socket-helpers.h (100%)
 rename tests/{ => unit}/test-aio-multithread.c (100%)
 rename tests/{ => unit}/test-aio.c (100%)
 rename tests/{ => unit}/test-authz-list.c (100%)
 rename tests/{ => unit}/test-authz-listfile.c (100%)
 rename tests/{ => unit}/test-authz-pam.c (100%)
 rename tests/{ => unit}/test-authz-simple.c (100%)
 rename tests/{ => unit}/test-base64.c (100%)
 rename tests/{ => unit}/test-bdrv-drain.c (100%)
 rename tests/{ => unit}/test-bdrv-graph-mod.c (100%)
 rename tests/{ => unit}/test-bitcnt.c (100%)
 rename tests/{ => unit}/test-bitmap.c (100%)
 rename tests/{ => unit}/test-bitops.c (100%)
 rename tests/{ => unit}/test-block-backend.c (100%)
 rename tests/{ => unit}/test-block-iothread.c (100%)
 rename tests/{ => unit}/test-blockjob-txn.c (100%)
 rename tests/{ => unit}/test-blockjob.c (100%)
 rename tests/{ => unit}/test-bufferiszero.c (100%)
 rename tests/{ => unit}/test-char.c (100%)
 rename tests/{ => unit}/test-clone-visitor.c (100%)
 rename tests/{ => unit}/test-coroutine.c (100%)
 rename tests/{ => unit}/test-crypto-afsplit.c (100%)
 rename tests/{ => unit}/test-crypto-block.c (100%)
 rename tests/{ => unit}/test-crypto-cipher.c (100%)
 rename tests/{ => unit}/test-crypto-hash.c (100%)
 rename tests/{ => unit}/test-crypto-hmac.c (100%)
 rename tests/{ => unit}/test-crypto-ivgen.c (100%)
 rename tests/{ => unit}/test-crypto-pbkdf.c (100%)
 rename tests/{ => unit}/test-crypto-secret.c (100%)
 rename tests/{ => unit}/test-crypto-tlscredsx509.c (100%)
 rename tests/{ => unit}/test-crypto-tlssession.c (100%)
 rename tests/{ => unit}/test-crypto-xts.c (100%)
 rename tests/{ => unit}/test-cutils.c (100%)
 rename tests/{ => unit}/test-fdmon-epoll.c (100%)
 rename tests/{ => unit}/test-hbitmap.c (100%)
 rename tests/{ => unit}/test-image-locking.c (100%)
 rename tests/{ => unit}/test-int128.c (100%)
 rename tests/{ => unit}/test-io-channel-buffer.c (100%)
 rename tests/{ => unit}/test-io-channel-command.c (100%)
 rename tests/{ => unit}/test-io-channel-file.c (100%)
 rename tests/{ => unit}/test-io-channel-socket.c (100%)
 rename tests/{ => unit}/test-io-channel-tls.c (100%)
 rename tests/{ => unit}/test-io-task.c (100%)
 rename tests/{ => unit}/test-iov.c (100%)
 rename tests/{ => unit}/test-keyval.c (100%)
 rename tests/{ => unit}/test-logging.c (100%)
 rename tests/{ => unit}/test-mul64.c (100%)
 rename tests/{ => unit}/test-opts-visitor.c (100%)
 rename tests/{ => unit}/test-qapi-util.c (100%)
 rename tests/{ => unit}/test-qdev-global-props.c (100%)
 rename tests/{ => unit}/test-qdist.c (100%)
 rename tests/{ => unit}/test-qemu-opts.c (100%)
 rename tests/{ => unit}/test-qga.c (99%)
 rename tests/{ => unit}/test-qgraph.c (99%)
 rename tests/{ => unit}/test-qht.c (100%)
 rename tests/{ => unit}/test-qmp-cmds.c (100%)
 rename tests/{ => unit}/test-qmp-event.c (100%)
 rename tests/{ => unit}/test-qobject-input-visitor.c (100%)
 rename tests/{ => unit}/test-qobject-output-visitor.c (100%)
 rename tests/{ => unit}/test-rcu-list.c (100%)
 rename tests/{ => unit}/test-rcu-simpleq.c (100%)
 rename tests/{ => unit}/test-rcu-slist.c (100%)
 rename tests/{ => unit}/test-rcu-tailq.c (100%)
 rename tests/{ => unit}/test-replication.c (100%)
 rename tests/{ => unit}/test-shift128.c (100%)
 rename tests/{ => unit}/test-string-input-visitor.c (100%)
 rename tests/{ => unit}/test-string-output-visitor.c (100%)
 rename tests/{ => unit}/test-thread-pool.c (100%)
 rename tests/{ => unit}/test-throttle.c (100%)
 rename tests/{ => unit}/test-timed-average.c (100%)
 rename tests/{ => unit}/test-util-filemonitor.c (100%)
 rename tests/{ => unit}/test-util-sockets.c (100%)
 rename tests/{ => unit}/test-uuid.c (100%)
 rename tests/{ => unit}/test-visitor-serialization.c (100%)
 rename tests/{ => unit}/test-vmstate.c (100%)
 rename tests/{ => unit}/test-write-threshold.c (100%)
 rename tests/{ => unit}/test-x86-cpuid.c (100%)
 rename tests/{ => unit}/test-xbzrle.c (100%)

-- 
2.27.0



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

* [PULL 1/9] tests: Move unit tests into a separate directory
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 2/9] tests: Move benchmarks into a separate folder Thomas Huth
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

The main tests directory still looks very crowded, and it's not
clear which files are part of a unit tests and which belong to
a different test subsystem. Let's clean up the mess and move the
unit tests to a separate directory.

Message-Id: <20210310063314.1049838-1-thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 MAINTAINERS                                   |  68 +++----
 tests/meson.build                             | 182 +----------------
 tests/{ => unit}/check-block-qdict.c          |   0
 tests/{ => unit}/check-qdict.c                |   0
 tests/{ => unit}/check-qjson.c                |   0
 tests/{ => unit}/check-qlist.c                |   0
 tests/{ => unit}/check-qlit.c                 |   0
 tests/{ => unit}/check-qnull.c                |   0
 tests/{ => unit}/check-qnum.c                 |   0
 tests/{ => unit}/check-qobject.c              |   0
 tests/{ => unit}/check-qom-interface.c        |   0
 tests/{ => unit}/check-qom-proplist.c         |   0
 tests/{ => unit}/check-qstring.c              |   0
 tests/{ => unit}/crypto-tls-psk-helpers.c     |   0
 tests/{ => unit}/crypto-tls-psk-helpers.h     |   0
 tests/{ => unit}/crypto-tls-x509-helpers.c    |   0
 tests/{ => unit}/crypto-tls-x509-helpers.h    |   0
 tests/{ => unit}/io-channel-helpers.c         |   0
 tests/{ => unit}/io-channel-helpers.h         |   0
 tests/{ => unit}/iothread.c                   |   0
 tests/{ => unit}/iothread.h                   |   0
 tests/unit/meson.build                        | 184 ++++++++++++++++++
 tests/{ => unit}/pkix_asn1_tab.c              |   2 +-
 tests/{ => unit}/ptimer-test-stubs.c          |   0
 tests/{ => unit}/ptimer-test.c                |   0
 tests/{ => unit}/ptimer-test.h                |   0
 tests/{ => unit}/rcutorture.c                 |   0
 tests/{ => unit}/socket-helpers.c             |   0
 tests/{ => unit}/socket-helpers.h             |   0
 tests/{ => unit}/test-aio-multithread.c       |   0
 tests/{ => unit}/test-aio.c                   |   0
 tests/{ => unit}/test-authz-list.c            |   0
 tests/{ => unit}/test-authz-listfile.c        |   0
 tests/{ => unit}/test-authz-pam.c             |   0
 tests/{ => unit}/test-authz-simple.c          |   0
 tests/{ => unit}/test-base64.c                |   0
 tests/{ => unit}/test-bdrv-drain.c            |   0
 tests/{ => unit}/test-bdrv-graph-mod.c        |   0
 tests/{ => unit}/test-bitcnt.c                |   0
 tests/{ => unit}/test-bitmap.c                |   0
 tests/{ => unit}/test-bitops.c                |   0
 tests/{ => unit}/test-block-backend.c         |   0
 tests/{ => unit}/test-block-iothread.c        |   0
 tests/{ => unit}/test-blockjob-txn.c          |   0
 tests/{ => unit}/test-blockjob.c              |   0
 tests/{ => unit}/test-bufferiszero.c          |   0
 tests/{ => unit}/test-char.c                  |   0
 tests/{ => unit}/test-clone-visitor.c         |   0
 tests/{ => unit}/test-coroutine.c             |   0
 tests/{ => unit}/test-crypto-afsplit.c        |   0
 tests/{ => unit}/test-crypto-block.c          |   0
 tests/{ => unit}/test-crypto-cipher.c         |   0
 tests/{ => unit}/test-crypto-hash.c           |   0
 tests/{ => unit}/test-crypto-hmac.c           |   0
 tests/{ => unit}/test-crypto-ivgen.c          |   0
 tests/{ => unit}/test-crypto-pbkdf.c          |   0
 tests/{ => unit}/test-crypto-secret.c         |   0
 tests/{ => unit}/test-crypto-tlscredsx509.c   |   0
 tests/{ => unit}/test-crypto-tlssession.c     |   0
 tests/{ => unit}/test-crypto-xts.c            |   0
 tests/{ => unit}/test-cutils.c                |   0
 tests/{ => unit}/test-fdmon-epoll.c           |   0
 tests/{ => unit}/test-hbitmap.c               |   0
 tests/{ => unit}/test-image-locking.c         |   0
 tests/{ => unit}/test-int128.c                |   0
 tests/{ => unit}/test-io-channel-buffer.c     |   0
 tests/{ => unit}/test-io-channel-command.c    |   0
 tests/{ => unit}/test-io-channel-file.c       |   0
 tests/{ => unit}/test-io-channel-socket.c     |   0
 tests/{ => unit}/test-io-channel-tls.c        |   0
 tests/{ => unit}/test-io-task.c               |   0
 tests/{ => unit}/test-iov.c                   |   0
 tests/{ => unit}/test-keyval.c                |   0
 tests/{ => unit}/test-logging.c               |   0
 tests/{ => unit}/test-mul64.c                 |   0
 tests/{ => unit}/test-opts-visitor.c          |   0
 tests/{ => unit}/test-qapi-util.c             |   0
 tests/{ => unit}/test-qdev-global-props.c     |   0
 tests/{ => unit}/test-qdist.c                 |   0
 tests/{ => unit}/test-qemu-opts.c             |   0
 tests/{ => unit}/test-qga.c                   |   2 +-
 tests/{ => unit}/test-qgraph.c                |   4 +-
 tests/{ => unit}/test-qht.c                   |   0
 tests/{ => unit}/test-qmp-cmds.c              |   0
 tests/{ => unit}/test-qmp-event.c             |   0
 tests/{ => unit}/test-qobject-input-visitor.c |   0
 .../{ => unit}/test-qobject-output-visitor.c  |   0
 tests/{ => unit}/test-rcu-list.c              |   0
 tests/{ => unit}/test-rcu-simpleq.c           |   0
 tests/{ => unit}/test-rcu-slist.c             |   0
 tests/{ => unit}/test-rcu-tailq.c             |   0
 tests/{ => unit}/test-replication.c           |   0
 tests/{ => unit}/test-shift128.c              |   0
 tests/{ => unit}/test-string-input-visitor.c  |   0
 tests/{ => unit}/test-string-output-visitor.c |   0
 tests/{ => unit}/test-thread-pool.c           |   0
 tests/{ => unit}/test-throttle.c              |   0
 tests/{ => unit}/test-timed-average.c         |   0
 tests/{ => unit}/test-util-filemonitor.c      |   0
 tests/{ => unit}/test-util-sockets.c          |   0
 tests/{ => unit}/test-uuid.c                  |   0
 tests/{ => unit}/test-visitor-serialization.c |   0
 tests/{ => unit}/test-vmstate.c               |   0
 tests/{ => unit}/test-write-threshold.c       |   0
 tests/{ => unit}/test-x86-cpuid.c             |   0
 tests/{ => unit}/test-xbzrle.c                |   0
 106 files changed, 223 insertions(+), 219 deletions(-)
 rename tests/{ => unit}/check-block-qdict.c (100%)
 rename tests/{ => unit}/check-qdict.c (100%)
 rename tests/{ => unit}/check-qjson.c (100%)
 rename tests/{ => unit}/check-qlist.c (100%)
 rename tests/{ => unit}/check-qlit.c (100%)
 rename tests/{ => unit}/check-qnull.c (100%)
 rename tests/{ => unit}/check-qnum.c (100%)
 rename tests/{ => unit}/check-qobject.c (100%)
 rename tests/{ => unit}/check-qom-interface.c (100%)
 rename tests/{ => unit}/check-qom-proplist.c (100%)
 rename tests/{ => unit}/check-qstring.c (100%)
 rename tests/{ => unit}/crypto-tls-psk-helpers.c (100%)
 rename tests/{ => unit}/crypto-tls-psk-helpers.h (100%)
 rename tests/{ => unit}/crypto-tls-x509-helpers.c (100%)
 rename tests/{ => unit}/crypto-tls-x509-helpers.h (100%)
 rename tests/{ => unit}/io-channel-helpers.c (100%)
 rename tests/{ => unit}/io-channel-helpers.h (100%)
 rename tests/{ => unit}/iothread.c (100%)
 rename tests/{ => unit}/iothread.h (100%)
 create mode 100644 tests/unit/meson.build
 rename tests/{ => unit}/pkix_asn1_tab.c (99%)
 rename tests/{ => unit}/ptimer-test-stubs.c (100%)
 rename tests/{ => unit}/ptimer-test.c (100%)
 rename tests/{ => unit}/ptimer-test.h (100%)
 rename tests/{ => unit}/rcutorture.c (100%)
 rename tests/{ => unit}/socket-helpers.c (100%)
 rename tests/{ => unit}/socket-helpers.h (100%)
 rename tests/{ => unit}/test-aio-multithread.c (100%)
 rename tests/{ => unit}/test-aio.c (100%)
 rename tests/{ => unit}/test-authz-list.c (100%)
 rename tests/{ => unit}/test-authz-listfile.c (100%)
 rename tests/{ => unit}/test-authz-pam.c (100%)
 rename tests/{ => unit}/test-authz-simple.c (100%)
 rename tests/{ => unit}/test-base64.c (100%)
 rename tests/{ => unit}/test-bdrv-drain.c (100%)
 rename tests/{ => unit}/test-bdrv-graph-mod.c (100%)
 rename tests/{ => unit}/test-bitcnt.c (100%)
 rename tests/{ => unit}/test-bitmap.c (100%)
 rename tests/{ => unit}/test-bitops.c (100%)
 rename tests/{ => unit}/test-block-backend.c (100%)
 rename tests/{ => unit}/test-block-iothread.c (100%)
 rename tests/{ => unit}/test-blockjob-txn.c (100%)
 rename tests/{ => unit}/test-blockjob.c (100%)
 rename tests/{ => unit}/test-bufferiszero.c (100%)
 rename tests/{ => unit}/test-char.c (100%)
 rename tests/{ => unit}/test-clone-visitor.c (100%)
 rename tests/{ => unit}/test-coroutine.c (100%)
 rename tests/{ => unit}/test-crypto-afsplit.c (100%)
 rename tests/{ => unit}/test-crypto-block.c (100%)
 rename tests/{ => unit}/test-crypto-cipher.c (100%)
 rename tests/{ => unit}/test-crypto-hash.c (100%)
 rename tests/{ => unit}/test-crypto-hmac.c (100%)
 rename tests/{ => unit}/test-crypto-ivgen.c (100%)
 rename tests/{ => unit}/test-crypto-pbkdf.c (100%)
 rename tests/{ => unit}/test-crypto-secret.c (100%)
 rename tests/{ => unit}/test-crypto-tlscredsx509.c (100%)
 rename tests/{ => unit}/test-crypto-tlssession.c (100%)
 rename tests/{ => unit}/test-crypto-xts.c (100%)
 rename tests/{ => unit}/test-cutils.c (100%)
 rename tests/{ => unit}/test-fdmon-epoll.c (100%)
 rename tests/{ => unit}/test-hbitmap.c (100%)
 rename tests/{ => unit}/test-image-locking.c (100%)
 rename tests/{ => unit}/test-int128.c (100%)
 rename tests/{ => unit}/test-io-channel-buffer.c (100%)
 rename tests/{ => unit}/test-io-channel-command.c (100%)
 rename tests/{ => unit}/test-io-channel-file.c (100%)
 rename tests/{ => unit}/test-io-channel-socket.c (100%)
 rename tests/{ => unit}/test-io-channel-tls.c (100%)
 rename tests/{ => unit}/test-io-task.c (100%)
 rename tests/{ => unit}/test-iov.c (100%)
 rename tests/{ => unit}/test-keyval.c (100%)
 rename tests/{ => unit}/test-logging.c (100%)
 rename tests/{ => unit}/test-mul64.c (100%)
 rename tests/{ => unit}/test-opts-visitor.c (100%)
 rename tests/{ => unit}/test-qapi-util.c (100%)
 rename tests/{ => unit}/test-qdev-global-props.c (100%)
 rename tests/{ => unit}/test-qdist.c (100%)
 rename tests/{ => unit}/test-qemu-opts.c (100%)
 rename tests/{ => unit}/test-qga.c (99%)
 rename tests/{ => unit}/test-qgraph.c (99%)
 rename tests/{ => unit}/test-qht.c (100%)
 rename tests/{ => unit}/test-qmp-cmds.c (100%)
 rename tests/{ => unit}/test-qmp-event.c (100%)
 rename tests/{ => unit}/test-qobject-input-visitor.c (100%)
 rename tests/{ => unit}/test-qobject-output-visitor.c (100%)
 rename tests/{ => unit}/test-rcu-list.c (100%)
 rename tests/{ => unit}/test-rcu-simpleq.c (100%)
 rename tests/{ => unit}/test-rcu-slist.c (100%)
 rename tests/{ => unit}/test-rcu-tailq.c (100%)
 rename tests/{ => unit}/test-replication.c (100%)
 rename tests/{ => unit}/test-shift128.c (100%)
 rename tests/{ => unit}/test-string-input-visitor.c (100%)
 rename tests/{ => unit}/test-string-output-visitor.c (100%)
 rename tests/{ => unit}/test-thread-pool.c (100%)
 rename tests/{ => unit}/test-throttle.c (100%)
 rename tests/{ => unit}/test-timed-average.c (100%)
 rename tests/{ => unit}/test-util-filemonitor.c (100%)
 rename tests/{ => unit}/test-util-sockets.c (100%)
 rename tests/{ => unit}/test-uuid.c (100%)
 rename tests/{ => unit}/test-visitor-serialization.c (100%)
 rename tests/{ => unit}/test-vmstate.c (100%)
 rename tests/{ => unit}/test-write-threshold.c (100%)
 rename tests/{ => unit}/test-x86-cpuid.c (100%)
 rename tests/{ => unit}/test-xbzrle.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index e04ae21a2f..e6c43c6833 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1537,7 +1537,7 @@ F: include/hw/southbridge/piix.h
 F: hw/misc/sga.c
 F: hw/isa/apm.c
 F: include/hw/isa/apm.h
-F: tests/test-x86-cpuid.c
+F: tests/unit/test-x86-cpuid.c
 F: tests/qtest/test-x86-cpuid-compat.c
 
 PC Chipset
@@ -2212,7 +2212,7 @@ F: qemu-io*
 F: tests/qemu-iotests/
 F: util/qemu-progress.c
 F: qobject/block-qdict.c
-F: tests/check-block-qdict.c
+F: tests/unit/check-block-qdict.c
 T: git https://repo.or.cz/qemu/kevin.git block
 
 Storage daemon
@@ -2238,7 +2238,7 @@ F: migration/block*
 F: include/block/aio.h
 F: include/block/aio-wait.h
 F: scripts/qemugdb/aio.py
-F: tests/test-fdmon-epoll.c
+F: tests/unit/test-fdmon-epoll.c
 T: git https://github.com/stefanha/qemu.git block
 
 Block SCSI subsystem
@@ -2298,7 +2298,7 @@ F: block/dirty-bitmap.c
 F: block/qcow2-bitmap.c
 F: migration/block-dirty-bitmap.c
 F: util/hbitmap.c
-F: tests/test-hbitmap.c
+F: tests/unit/test-hbitmap.c
 F: docs/interop/bitmaps.rst
 T: git https://repo.or.cz/qemu/ericb.git bitmaps
 
@@ -2319,8 +2319,8 @@ Command line option argument parsing
 M: Markus Armbruster <armbru@redhat.com>
 S: Supported
 F: include/qemu/option.h
-F: tests/test-keyval.c
-F: tests/test-qemu-opts.c
+F: tests/unit/test-keyval.c
+F: tests/unit/test-qemu-opts.c
 F: util/keyval.c
 F: util/qemu-option.c
 
@@ -2438,8 +2438,8 @@ Read, Copy, Update (RCU)
 M: Paolo Bonzini <pbonzini@redhat.com>
 S: Maintained
 F: include/qemu/rcu*.h
-F: tests/rcutorture.c
-F: tests/test-rcu-*.c
+F: tests/unit/rcutorture.c
+F: tests/unit/test-rcu-*.c
 F: util/rcu.c
 
 Human Monitor (HMP)
@@ -2517,10 +2517,10 @@ F: include/qapi/
 X: include/qapi/qmp/
 F: include/qapi/qmp/dispatch.h
 F: tests/qapi-schema/
-F: tests/test-*-visitor.c
-F: tests/test-qapi-*.c
-F: tests/test-qmp-*.c
-F: tests/test-visitor-serialization.c
+F: tests/unit/test-*-visitor.c
+F: tests/unit/test-qapi-*.c
+F: tests/unit/test-qmp-*.c
+F: tests/unit/test-visitor-serialization.c
 F: scripts/qapi-gen.py
 F: scripts/qapi/*
 F: docs/sphinx/qapidoc.py
@@ -2541,14 +2541,14 @@ F: qobject/
 F: include/qapi/qmp/
 X: include/qapi/qmp/dispatch.h
 F: scripts/coccinelle/qobject.cocci
-F: tests/check-qdict.c
-F: tests/check-qjson.c
-F: tests/check-qlist.c
-F: tests/check-qlit.c
-F: tests/check-qnull.c
-F: tests/check-qnum.c
-F: tests/check-qobject.c
-F: tests/check-qstring.c
+F: tests/unit/check-qdict.c
+F: tests/unit/check-qjson.c
+F: tests/unit/check-qlist.c
+F: tests/unit/check-qlit.c
+F: tests/unit/check-qnull.c
+F: tests/unit/check-qnum.c
+F: tests/unit/check-qobject.c
+F: tests/unit/check-qstring.c
 F: tests/data/qobject/qdict.txt
 T: git https://repo.or.cz/qemu/armbru.git qapi-next
 
@@ -2559,7 +2559,7 @@ F: qga/
 F: docs/interop/qemu-ga.rst
 F: docs/interop/qemu-ga-ref.rst
 F: scripts/qemu-guest-agent/
-F: tests/test-qga.c
+F: tests/unit/test-qga.c
 T: git https://github.com/mdroth/qemu.git qga
 
 QOM
@@ -2580,9 +2580,9 @@ F: scripts/coccinelle/qom-parent-type.cocci
 F: softmmu/qdev-monitor.c
 F: stubs/qdev.c
 F: qom/
-F: tests/check-qom-interface.c
-F: tests/check-qom-proplist.c
-F: tests/test-qdev-global-props.c
+F: tests/unit/check-qom-interface.c
+F: tests/unit/check-qom-proplist.c
+F: tests/unit/test-qdev-global-props.c
 
 QOM boilerplate conversion script
 M: Eduardo Habkost <ehabkost@redhat.com>
@@ -2721,10 +2721,10 @@ S: Maintained
 F: crypto/
 F: include/crypto/
 F: qapi/crypto.json
-F: tests/test-crypto-*
+F: tests/unit/test-crypto-*
 F: tests/benchmark-crypto-*
-F: tests/crypto-tls-*
-F: tests/pkix_asn1_tab.c
+F: tests/unit/crypto-tls-*
+F: tests/unit/pkix_asn1_tab.c
 F: qemu.sasl
 
 Coroutines
@@ -2733,7 +2733,7 @@ M: Kevin Wolf <kwolf@redhat.com>
 S: Maintained
 F: util/*coroutine*
 F: include/qemu/coroutine*
-F: tests/test-coroutine.c
+F: tests/unit/test-coroutine.c
 
 Buffers
 M: Daniel P. Berrange <berrange@redhat.com>
@@ -2746,7 +2746,7 @@ M: Daniel P. Berrange <berrange@redhat.com>
 S: Maintained
 F: io/
 F: include/io/
-F: tests/test-io-*
+F: tests/unit/test-io-*
 
 User authorization
 M: Daniel P. Berrange <berrange@redhat.com>
@@ -2754,7 +2754,7 @@ S: Maintained
 F: authz/
 F: qapi/authz.json
 F: include/authz/
-F: tests/test-authz-*
+F: tests/unit/test-authz-*
 
 Sockets
 M: Daniel P. Berrange <berrange@redhat.com>
@@ -2769,7 +2769,7 @@ M: Daniel P. Berrange <berrange@redhat.com>
 S: Odd Fixes
 F: util/filemonitor*.c
 F: include/qemu/filemonitor.h
-F: tests/test-util-filemonitor.c
+F: tests/unit/test-util-filemonitor.c
 
 Throttling infrastructure
 M: Alberto Garcia <berto@igalia.com>
@@ -2779,7 +2779,7 @@ F: include/block/throttle-groups.h
 F: include/qemu/throttle*.h
 F: util/throttle.c
 F: docs/throttle.txt
-F: tests/test-throttle.c
+F: tests/unit/test-throttle.c
 L: qemu-block@nongnu.org
 
 UUID
@@ -2787,7 +2787,7 @@ M: Fam Zheng <fam@euphon.net>
 S: Supported
 F: util/uuid.c
 F: include/qemu/uuid.h
-F: tests/test-uuid.c
+F: tests/unit/test-uuid.c
 
 Yank feature
 M: Lukas Straub <lukasstraub2@web.de>
@@ -3237,7 +3237,7 @@ M: Xie Changlong <xiechanglong.d@gmail.com>
 S: Supported
 F: replication*
 F: block/replication.c
-F: tests/test-replication.c
+F: tests/unit/test-replication.c
 F: docs/block-replication.txt
 
 PVRDMA
diff --git a/tests/meson.build b/tests/meson.build
index 656d211e25..af43fd1eaf 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -69,59 +69,6 @@ endforeach
 libtestqapi = static_library('testqapi', sources: [genh, test_qapi_sources])
 testqapi = declare_dependency(link_with: libtestqapi, sources: [genh, test_qapi_headers])
 
-testblock = declare_dependency(dependencies: [block], sources: 'iothread.c')
-
-tests = {
-  'check-block-qdict': [],
-  'check-qdict': [],
-  'check-qnum': [],
-  'check-qstring': [],
-  'check-qlist': [],
-  'check-qnull': [],
-  'check-qobject': [],
-  'check-qjson': [],
-  'check-qlit': [],
-  'test-qobject-output-visitor': [testqapi],
-  'test-clone-visitor': [testqapi],
-  'test-qobject-input-visitor': [testqapi],
-  'test-string-input-visitor': [testqapi],
-  'test-string-output-visitor': [testqapi],
-  'test-opts-visitor': [testqapi],
-  'test-visitor-serialization': [testqapi],
-  'test-bitmap': [],
-  # all code tested by test-x86-cpuid is inside topology.h
-  'test-x86-cpuid': [],
-  'test-cutils': [],
-  'test-shift128': [],
-  'test-mul64': [],
-  # all code tested by test-int128 is inside int128.h
-  'test-int128': [],
-  'rcutorture': [],
-  'test-rcu-list': [],
-  'test-rcu-simpleq': [],
-  'test-rcu-tailq': [],
-  'test-rcu-slist': [],
-  'test-qdist': [],
-  'test-qht': [],
-  'test-bitops': [],
-  'test-bitcnt': [],
-  'test-qgraph': ['qtest/libqos/qgraph.c'],
-  'check-qom-interface': [qom],
-  'check-qom-proplist': [qom],
-  'test-qemu-opts': [],
-  'test-keyval': [testqapi],
-  'test-logging': [],
-  'test-uuid': [],
-  'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
-  'test-qapi-util': [],
-}
-
-if have_system or have_tools
-  tests += {
-    'test-qmp-event': [testqapi],
-  }
-endif
-
 test_deps = {
   'test-qht-par': qht_bench,
 }
@@ -129,65 +76,6 @@ test_deps = {
 benchs = {}
 
 if have_block
-  tests += {
-    'test-coroutine': [testblock],
-    'test-aio': [testblock],
-    'test-aio-multithread': [testblock],
-    'test-throttle': [testblock],
-    'test-thread-pool': [testblock],
-    'test-hbitmap': [testblock],
-    'test-bdrv-drain': [testblock],
-    'test-bdrv-graph-mod': [testblock],
-    'test-blockjob': [testblock],
-    'test-blockjob-txn': [testblock],
-    'test-block-backend': [testblock],
-    'test-block-iothread': [testblock],
-    'test-write-threshold': [testblock],
-    'test-crypto-hash': [crypto],
-    'test-crypto-hmac': [crypto],
-    'test-crypto-cipher': [crypto],
-    'test-crypto-secret': [crypto, keyutils],
-    'test-authz-simple': [authz],
-    'test-authz-list': [authz],
-    'test-authz-listfile': [authz],
-    'test-io-task': [testblock],
-    'test-io-channel-socket': ['socket-helpers.c', 'io-channel-helpers.c', io],
-    'test-io-channel-file': ['io-channel-helpers.c', io],
-    'test-io-channel-command': ['io-channel-helpers.c', io],
-    'test-io-channel-buffer': ['io-channel-helpers.c', io],
-    'test-crypto-ivgen': [io],
-    'test-crypto-afsplit': [io],
-    'test-crypto-block': [io],
-  }
-  if 'CONFIG_GNUTLS' in config_host and \
-     'CONFIG_TASN1' in config_host and \
-     'CONFIG_POSIX' in config_host
-    tests += {
-      'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
-                                   tasn1, crypto, gnutls],
-      'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
-                                 tasn1, crypto, gnutls],
-      'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
-                              tasn1, io, crypto, gnutls]}
-  endif
-  if 'CONFIG_AUTH_PAM' in config_host
-    tests += {'test-authz-pam': [authz]}
-  endif
-  if 'CONFIG_QEMU_PRIVATE_XTS' in config_host
-    tests += {'test-crypto-xts': [crypto, io]}
-  endif
-  if 'CONFIG_POSIX' in config_host
-    tests += {'test-image-locking': [testblock]}
-  endif
-  if 'CONFIG_REPLICATION' in config_host
-    tests += {'test-replication': [testblock]}
-  endif
-  if 'CONFIG_NETTLE' in config_host or 'CONFIG_GCRYPT' in config_host
-    tests += {'test-crypto-pbkdf': [io]}
-  endif
-  if 'CONFIG_EPOLL_CREATE1' in config_host
-    tests += {'test-fdmon-epoll': [testblock]}
-  endif
   benchs += {
      'benchmark-crypto-hash': [crypto],
      'benchmark-crypto-hmac': [crypto],
@@ -195,75 +83,6 @@ if have_block
   }
 endif
 
-if have_system
-  tests += {
-    'test-iov': [],
-    'test-qmp-cmds': [testqapi],
-    'test-xbzrle': [migration],
-    'test-timed-average': [],
-    'test-util-sockets': ['socket-helpers.c'],
-    'test-base64': [],
-    'test-bufferiszero': [],
-    'test-vmstate': [migration, io]
-  }
-  if 'CONFIG_INOTIFY1' in config_host
-    tests += {'test-util-filemonitor': []}
-  endif
-
-  # Some tests: test-char, test-qdev-global-props, and test-qga,
-  # are not runnable under TSan due to a known issue.
-  # https://github.com/google/sanitizers/issues/1116
-  if 'CONFIG_TSAN' not in config_host
-    if 'CONFIG_POSIX' in config_host
-        tests += {
-          'test-char': ['socket-helpers.c', qom, io, chardev]
-        }
-    endif
-
-    tests += {
-      'test-qdev-global-props': [qom, hwcore, testqapi]
-    }
-  endif
-endif
-
-if 'CONFIG_TSAN' not in config_host and \
-   'CONFIG_GUEST_AGENT' in config_host and \
-   'CONFIG_LINUX' in config_host
-  tests += {'test-qga': ['qtest/libqtest.c']}
-  test_deps += {'test-qga': qga}
-endif
-
-test_env = environment()
-test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
-test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-
-slow_tests = {
-  'test-crypto-tlscredsx509': 45,
-  'test-crypto-tlssession': 45
-}
-
-foreach test_name, extra: tests
-  src = [test_name + '.c']
-  deps = [qemuutil]
-  if extra.length() > 0
-    # use a sourceset to quickly separate sources and deps
-    test_ss = ss.source_set()
-    test_ss.add(extra)
-    src += test_ss.all_sources()
-    deps += test_ss.all_dependencies()
-  endif
-  exe = executable(test_name, src, genh, dependencies: deps)
-
-  test(test_name, exe,
-       depends: test_deps.get(test_name, []),
-       env: test_env,
-       args: ['--tap', '-k'],
-       protocol: 'tap',
-       timeout: slow_tests.get(test_name, 30),
-       priority: slow_tests.get(test_name, 30),
-       suite: ['unit'])
-endforeach
-
 foreach bench_name, deps: benchs
   exe = executable(bench_name, bench_name + '.c',
                    dependencies: [qemuutil] + deps)
@@ -299,6 +118,7 @@ if not get_option('tcg').disabled()
   endif
 endif
 
+subdir('unit')
 subdir('qapi-schema')
 subdir('qtest')
 subdir('migration')
diff --git a/tests/check-block-qdict.c b/tests/unit/check-block-qdict.c
similarity index 100%
rename from tests/check-block-qdict.c
rename to tests/unit/check-block-qdict.c
diff --git a/tests/check-qdict.c b/tests/unit/check-qdict.c
similarity index 100%
rename from tests/check-qdict.c
rename to tests/unit/check-qdict.c
diff --git a/tests/check-qjson.c b/tests/unit/check-qjson.c
similarity index 100%
rename from tests/check-qjson.c
rename to tests/unit/check-qjson.c
diff --git a/tests/check-qlist.c b/tests/unit/check-qlist.c
similarity index 100%
rename from tests/check-qlist.c
rename to tests/unit/check-qlist.c
diff --git a/tests/check-qlit.c b/tests/unit/check-qlit.c
similarity index 100%
rename from tests/check-qlit.c
rename to tests/unit/check-qlit.c
diff --git a/tests/check-qnull.c b/tests/unit/check-qnull.c
similarity index 100%
rename from tests/check-qnull.c
rename to tests/unit/check-qnull.c
diff --git a/tests/check-qnum.c b/tests/unit/check-qnum.c
similarity index 100%
rename from tests/check-qnum.c
rename to tests/unit/check-qnum.c
diff --git a/tests/check-qobject.c b/tests/unit/check-qobject.c
similarity index 100%
rename from tests/check-qobject.c
rename to tests/unit/check-qobject.c
diff --git a/tests/check-qom-interface.c b/tests/unit/check-qom-interface.c
similarity index 100%
rename from tests/check-qom-interface.c
rename to tests/unit/check-qom-interface.c
diff --git a/tests/check-qom-proplist.c b/tests/unit/check-qom-proplist.c
similarity index 100%
rename from tests/check-qom-proplist.c
rename to tests/unit/check-qom-proplist.c
diff --git a/tests/check-qstring.c b/tests/unit/check-qstring.c
similarity index 100%
rename from tests/check-qstring.c
rename to tests/unit/check-qstring.c
diff --git a/tests/crypto-tls-psk-helpers.c b/tests/unit/crypto-tls-psk-helpers.c
similarity index 100%
rename from tests/crypto-tls-psk-helpers.c
rename to tests/unit/crypto-tls-psk-helpers.c
diff --git a/tests/crypto-tls-psk-helpers.h b/tests/unit/crypto-tls-psk-helpers.h
similarity index 100%
rename from tests/crypto-tls-psk-helpers.h
rename to tests/unit/crypto-tls-psk-helpers.h
diff --git a/tests/crypto-tls-x509-helpers.c b/tests/unit/crypto-tls-x509-helpers.c
similarity index 100%
rename from tests/crypto-tls-x509-helpers.c
rename to tests/unit/crypto-tls-x509-helpers.c
diff --git a/tests/crypto-tls-x509-helpers.h b/tests/unit/crypto-tls-x509-helpers.h
similarity index 100%
rename from tests/crypto-tls-x509-helpers.h
rename to tests/unit/crypto-tls-x509-helpers.h
diff --git a/tests/io-channel-helpers.c b/tests/unit/io-channel-helpers.c
similarity index 100%
rename from tests/io-channel-helpers.c
rename to tests/unit/io-channel-helpers.c
diff --git a/tests/io-channel-helpers.h b/tests/unit/io-channel-helpers.h
similarity index 100%
rename from tests/io-channel-helpers.h
rename to tests/unit/io-channel-helpers.h
diff --git a/tests/iothread.c b/tests/unit/iothread.c
similarity index 100%
rename from tests/iothread.c
rename to tests/unit/iothread.c
diff --git a/tests/iothread.h b/tests/unit/iothread.h
similarity index 100%
rename from tests/iothread.h
rename to tests/unit/iothread.h
diff --git a/tests/unit/meson.build b/tests/unit/meson.build
new file mode 100644
index 0000000000..4bfe4627ba
--- /dev/null
+++ b/tests/unit/meson.build
@@ -0,0 +1,184 @@
+
+testblock = declare_dependency(dependencies: [block], sources: 'iothread.c')
+
+tests = {
+  'check-block-qdict': [],
+  'check-qdict': [],
+  'check-qnum': [],
+  'check-qstring': [],
+  'check-qlist': [],
+  'check-qnull': [],
+  'check-qobject': [],
+  'check-qjson': [],
+  'check-qlit': [],
+  'test-qobject-output-visitor': [testqapi],
+  'test-clone-visitor': [testqapi],
+  'test-qobject-input-visitor': [testqapi],
+  'test-string-input-visitor': [testqapi],
+  'test-string-output-visitor': [testqapi],
+  'test-opts-visitor': [testqapi],
+  'test-visitor-serialization': [testqapi],
+  'test-bitmap': [],
+  # all code tested by test-x86-cpuid is inside topology.h
+  'test-x86-cpuid': [],
+  'test-cutils': [],
+  'test-shift128': [],
+  'test-mul64': [],
+  # all code tested by test-int128 is inside int128.h
+  'test-int128': [],
+  'rcutorture': [],
+  'test-rcu-list': [],
+  'test-rcu-simpleq': [],
+  'test-rcu-tailq': [],
+  'test-rcu-slist': [],
+  'test-qdist': [],
+  'test-qht': [],
+  'test-bitops': [],
+  'test-bitcnt': [],
+  'test-qgraph': ['../qtest/libqos/qgraph.c'],
+  'check-qom-interface': [qom],
+  'check-qom-proplist': [qom],
+  'test-qemu-opts': [],
+  'test-keyval': [testqapi],
+  'test-logging': [],
+  'test-uuid': [],
+  'ptimer-test': ['ptimer-test-stubs.c', meson.source_root() / 'hw/core/ptimer.c'],
+  'test-qapi-util': [],
+}
+
+if have_system or have_tools
+  tests += {
+    'test-qmp-event': [testqapi],
+  }
+endif
+
+if have_block
+  tests += {
+    'test-coroutine': [testblock],
+    'test-aio': [testblock],
+    'test-aio-multithread': [testblock],
+    'test-throttle': [testblock],
+    'test-thread-pool': [testblock],
+    'test-hbitmap': [testblock],
+    'test-bdrv-drain': [testblock],
+    'test-bdrv-graph-mod': [testblock],
+    'test-blockjob': [testblock],
+    'test-blockjob-txn': [testblock],
+    'test-block-backend': [testblock],
+    'test-block-iothread': [testblock],
+    'test-write-threshold': [testblock],
+    'test-crypto-hash': [crypto],
+    'test-crypto-hmac': [crypto],
+    'test-crypto-cipher': [crypto],
+    'test-crypto-secret': [crypto, keyutils],
+    'test-authz-simple': [authz],
+    'test-authz-list': [authz],
+    'test-authz-listfile': [authz],
+    'test-io-task': [testblock],
+    'test-io-channel-socket': ['socket-helpers.c', 'io-channel-helpers.c', io],
+    'test-io-channel-file': ['io-channel-helpers.c', io],
+    'test-io-channel-command': ['io-channel-helpers.c', io],
+    'test-io-channel-buffer': ['io-channel-helpers.c', io],
+    'test-crypto-ivgen': [io],
+    'test-crypto-afsplit': [io],
+    'test-crypto-block': [io],
+  }
+  if 'CONFIG_GNUTLS' in config_host and \
+     'CONFIG_TASN1' in config_host and \
+     'CONFIG_POSIX' in config_host
+    tests += {
+      'test-crypto-tlscredsx509': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
+                                   tasn1, crypto, gnutls],
+      'test-crypto-tlssession': ['crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c', 'crypto-tls-psk-helpers.c',
+                                 tasn1, crypto, gnutls],
+      'test-io-channel-tls': ['io-channel-helpers.c', 'crypto-tls-x509-helpers.c', 'pkix_asn1_tab.c',
+                              tasn1, io, crypto, gnutls]}
+  endif
+  if 'CONFIG_AUTH_PAM' in config_host
+    tests += {'test-authz-pam': [authz]}
+  endif
+  if 'CONFIG_QEMU_PRIVATE_XTS' in config_host
+    tests += {'test-crypto-xts': [crypto, io]}
+  endif
+  if 'CONFIG_POSIX' in config_host
+    tests += {'test-image-locking': [testblock]}
+  endif
+  if 'CONFIG_REPLICATION' in config_host
+    tests += {'test-replication': [testblock]}
+  endif
+  if 'CONFIG_NETTLE' in config_host or 'CONFIG_GCRYPT' in config_host
+    tests += {'test-crypto-pbkdf': [io]}
+  endif
+  if 'CONFIG_EPOLL_CREATE1' in config_host
+    tests += {'test-fdmon-epoll': [testblock]}
+  endif
+endif
+
+if have_system
+  tests += {
+    'test-iov': [],
+    'test-qmp-cmds': [testqapi],
+    'test-xbzrle': [migration],
+    'test-timed-average': [],
+    'test-util-sockets': ['socket-helpers.c'],
+    'test-base64': [],
+    'test-bufferiszero': [],
+    'test-vmstate': [migration, io]
+  }
+  if 'CONFIG_INOTIFY1' in config_host
+    tests += {'test-util-filemonitor': []}
+  endif
+
+  # Some tests: test-char, test-qdev-global-props, and test-qga,
+  # are not runnable under TSan due to a known issue.
+  # https://github.com/google/sanitizers/issues/1116
+  if 'CONFIG_TSAN' not in config_host
+    if 'CONFIG_POSIX' in config_host
+        tests += {
+          'test-char': ['socket-helpers.c', qom, io, chardev]
+        }
+    endif
+
+    tests += {
+      'test-qdev-global-props': [qom, hwcore, testqapi]
+    }
+  endif
+endif
+
+if 'CONFIG_TSAN' not in config_host and \
+   'CONFIG_GUEST_AGENT' in config_host and \
+   'CONFIG_LINUX' in config_host
+  tests += {'test-qga': ['../qtest/libqtest.c']}
+  test_deps += {'test-qga': qga}
+endif
+
+test_env = environment()
+test_env.set('G_TEST_SRCDIR', meson.current_source_dir())
+test_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
+
+slow_tests = {
+  'test-crypto-tlscredsx509': 45,
+  'test-crypto-tlssession': 45
+}
+
+foreach test_name, extra: tests
+  src = [test_name + '.c']
+  deps = [qemuutil]
+  if extra.length() > 0
+    # use a sourceset to quickly separate sources and deps
+    test_ss = ss.source_set()
+    test_ss.add(extra)
+    src += test_ss.all_sources()
+    deps += test_ss.all_dependencies()
+  endif
+  exe = executable(test_name, src, genh, dependencies: deps)
+
+  test(test_name, exe,
+       depends: test_deps.get(test_name, []),
+       env: test_env,
+       args: ['--tap', '-k'],
+       protocol: 'tap',
+       timeout: slow_tests.get(test_name, 30),
+       priority: slow_tests.get(test_name, 30),
+       suite: ['unit'])
+endforeach
diff --git a/tests/pkix_asn1_tab.c b/tests/unit/pkix_asn1_tab.c
similarity index 99%
rename from tests/pkix_asn1_tab.c
rename to tests/unit/pkix_asn1_tab.c
index 4aaf736d3f..15397cf77a 100644
--- a/tests/pkix_asn1_tab.c
+++ b/tests/unit/pkix_asn1_tab.c
@@ -4,7 +4,7 @@
  */
 
 #include "qemu/osdep.h"
-#include "tests/crypto-tls-x509-helpers.h"
+#include "crypto-tls-x509-helpers.h"
 
 #ifdef QCRYPTO_HAVE_TLS_TEST_SUPPORT
 
diff --git a/tests/ptimer-test-stubs.c b/tests/unit/ptimer-test-stubs.c
similarity index 100%
rename from tests/ptimer-test-stubs.c
rename to tests/unit/ptimer-test-stubs.c
diff --git a/tests/ptimer-test.c b/tests/unit/ptimer-test.c
similarity index 100%
rename from tests/ptimer-test.c
rename to tests/unit/ptimer-test.c
diff --git a/tests/ptimer-test.h b/tests/unit/ptimer-test.h
similarity index 100%
rename from tests/ptimer-test.h
rename to tests/unit/ptimer-test.h
diff --git a/tests/rcutorture.c b/tests/unit/rcutorture.c
similarity index 100%
rename from tests/rcutorture.c
rename to tests/unit/rcutorture.c
diff --git a/tests/socket-helpers.c b/tests/unit/socket-helpers.c
similarity index 100%
rename from tests/socket-helpers.c
rename to tests/unit/socket-helpers.c
diff --git a/tests/socket-helpers.h b/tests/unit/socket-helpers.h
similarity index 100%
rename from tests/socket-helpers.h
rename to tests/unit/socket-helpers.h
diff --git a/tests/test-aio-multithread.c b/tests/unit/test-aio-multithread.c
similarity index 100%
rename from tests/test-aio-multithread.c
rename to tests/unit/test-aio-multithread.c
diff --git a/tests/test-aio.c b/tests/unit/test-aio.c
similarity index 100%
rename from tests/test-aio.c
rename to tests/unit/test-aio.c
diff --git a/tests/test-authz-list.c b/tests/unit/test-authz-list.c
similarity index 100%
rename from tests/test-authz-list.c
rename to tests/unit/test-authz-list.c
diff --git a/tests/test-authz-listfile.c b/tests/unit/test-authz-listfile.c
similarity index 100%
rename from tests/test-authz-listfile.c
rename to tests/unit/test-authz-listfile.c
diff --git a/tests/test-authz-pam.c b/tests/unit/test-authz-pam.c
similarity index 100%
rename from tests/test-authz-pam.c
rename to tests/unit/test-authz-pam.c
diff --git a/tests/test-authz-simple.c b/tests/unit/test-authz-simple.c
similarity index 100%
rename from tests/test-authz-simple.c
rename to tests/unit/test-authz-simple.c
diff --git a/tests/test-base64.c b/tests/unit/test-base64.c
similarity index 100%
rename from tests/test-base64.c
rename to tests/unit/test-base64.c
diff --git a/tests/test-bdrv-drain.c b/tests/unit/test-bdrv-drain.c
similarity index 100%
rename from tests/test-bdrv-drain.c
rename to tests/unit/test-bdrv-drain.c
diff --git a/tests/test-bdrv-graph-mod.c b/tests/unit/test-bdrv-graph-mod.c
similarity index 100%
rename from tests/test-bdrv-graph-mod.c
rename to tests/unit/test-bdrv-graph-mod.c
diff --git a/tests/test-bitcnt.c b/tests/unit/test-bitcnt.c
similarity index 100%
rename from tests/test-bitcnt.c
rename to tests/unit/test-bitcnt.c
diff --git a/tests/test-bitmap.c b/tests/unit/test-bitmap.c
similarity index 100%
rename from tests/test-bitmap.c
rename to tests/unit/test-bitmap.c
diff --git a/tests/test-bitops.c b/tests/unit/test-bitops.c
similarity index 100%
rename from tests/test-bitops.c
rename to tests/unit/test-bitops.c
diff --git a/tests/test-block-backend.c b/tests/unit/test-block-backend.c
similarity index 100%
rename from tests/test-block-backend.c
rename to tests/unit/test-block-backend.c
diff --git a/tests/test-block-iothread.c b/tests/unit/test-block-iothread.c
similarity index 100%
rename from tests/test-block-iothread.c
rename to tests/unit/test-block-iothread.c
diff --git a/tests/test-blockjob-txn.c b/tests/unit/test-blockjob-txn.c
similarity index 100%
rename from tests/test-blockjob-txn.c
rename to tests/unit/test-blockjob-txn.c
diff --git a/tests/test-blockjob.c b/tests/unit/test-blockjob.c
similarity index 100%
rename from tests/test-blockjob.c
rename to tests/unit/test-blockjob.c
diff --git a/tests/test-bufferiszero.c b/tests/unit/test-bufferiszero.c
similarity index 100%
rename from tests/test-bufferiszero.c
rename to tests/unit/test-bufferiszero.c
diff --git a/tests/test-char.c b/tests/unit/test-char.c
similarity index 100%
rename from tests/test-char.c
rename to tests/unit/test-char.c
diff --git a/tests/test-clone-visitor.c b/tests/unit/test-clone-visitor.c
similarity index 100%
rename from tests/test-clone-visitor.c
rename to tests/unit/test-clone-visitor.c
diff --git a/tests/test-coroutine.c b/tests/unit/test-coroutine.c
similarity index 100%
rename from tests/test-coroutine.c
rename to tests/unit/test-coroutine.c
diff --git a/tests/test-crypto-afsplit.c b/tests/unit/test-crypto-afsplit.c
similarity index 100%
rename from tests/test-crypto-afsplit.c
rename to tests/unit/test-crypto-afsplit.c
diff --git a/tests/test-crypto-block.c b/tests/unit/test-crypto-block.c
similarity index 100%
rename from tests/test-crypto-block.c
rename to tests/unit/test-crypto-block.c
diff --git a/tests/test-crypto-cipher.c b/tests/unit/test-crypto-cipher.c
similarity index 100%
rename from tests/test-crypto-cipher.c
rename to tests/unit/test-crypto-cipher.c
diff --git a/tests/test-crypto-hash.c b/tests/unit/test-crypto-hash.c
similarity index 100%
rename from tests/test-crypto-hash.c
rename to tests/unit/test-crypto-hash.c
diff --git a/tests/test-crypto-hmac.c b/tests/unit/test-crypto-hmac.c
similarity index 100%
rename from tests/test-crypto-hmac.c
rename to tests/unit/test-crypto-hmac.c
diff --git a/tests/test-crypto-ivgen.c b/tests/unit/test-crypto-ivgen.c
similarity index 100%
rename from tests/test-crypto-ivgen.c
rename to tests/unit/test-crypto-ivgen.c
diff --git a/tests/test-crypto-pbkdf.c b/tests/unit/test-crypto-pbkdf.c
similarity index 100%
rename from tests/test-crypto-pbkdf.c
rename to tests/unit/test-crypto-pbkdf.c
diff --git a/tests/test-crypto-secret.c b/tests/unit/test-crypto-secret.c
similarity index 100%
rename from tests/test-crypto-secret.c
rename to tests/unit/test-crypto-secret.c
diff --git a/tests/test-crypto-tlscredsx509.c b/tests/unit/test-crypto-tlscredsx509.c
similarity index 100%
rename from tests/test-crypto-tlscredsx509.c
rename to tests/unit/test-crypto-tlscredsx509.c
diff --git a/tests/test-crypto-tlssession.c b/tests/unit/test-crypto-tlssession.c
similarity index 100%
rename from tests/test-crypto-tlssession.c
rename to tests/unit/test-crypto-tlssession.c
diff --git a/tests/test-crypto-xts.c b/tests/unit/test-crypto-xts.c
similarity index 100%
rename from tests/test-crypto-xts.c
rename to tests/unit/test-crypto-xts.c
diff --git a/tests/test-cutils.c b/tests/unit/test-cutils.c
similarity index 100%
rename from tests/test-cutils.c
rename to tests/unit/test-cutils.c
diff --git a/tests/test-fdmon-epoll.c b/tests/unit/test-fdmon-epoll.c
similarity index 100%
rename from tests/test-fdmon-epoll.c
rename to tests/unit/test-fdmon-epoll.c
diff --git a/tests/test-hbitmap.c b/tests/unit/test-hbitmap.c
similarity index 100%
rename from tests/test-hbitmap.c
rename to tests/unit/test-hbitmap.c
diff --git a/tests/test-image-locking.c b/tests/unit/test-image-locking.c
similarity index 100%
rename from tests/test-image-locking.c
rename to tests/unit/test-image-locking.c
diff --git a/tests/test-int128.c b/tests/unit/test-int128.c
similarity index 100%
rename from tests/test-int128.c
rename to tests/unit/test-int128.c
diff --git a/tests/test-io-channel-buffer.c b/tests/unit/test-io-channel-buffer.c
similarity index 100%
rename from tests/test-io-channel-buffer.c
rename to tests/unit/test-io-channel-buffer.c
diff --git a/tests/test-io-channel-command.c b/tests/unit/test-io-channel-command.c
similarity index 100%
rename from tests/test-io-channel-command.c
rename to tests/unit/test-io-channel-command.c
diff --git a/tests/test-io-channel-file.c b/tests/unit/test-io-channel-file.c
similarity index 100%
rename from tests/test-io-channel-file.c
rename to tests/unit/test-io-channel-file.c
diff --git a/tests/test-io-channel-socket.c b/tests/unit/test-io-channel-socket.c
similarity index 100%
rename from tests/test-io-channel-socket.c
rename to tests/unit/test-io-channel-socket.c
diff --git a/tests/test-io-channel-tls.c b/tests/unit/test-io-channel-tls.c
similarity index 100%
rename from tests/test-io-channel-tls.c
rename to tests/unit/test-io-channel-tls.c
diff --git a/tests/test-io-task.c b/tests/unit/test-io-task.c
similarity index 100%
rename from tests/test-io-task.c
rename to tests/unit/test-io-task.c
diff --git a/tests/test-iov.c b/tests/unit/test-iov.c
similarity index 100%
rename from tests/test-iov.c
rename to tests/unit/test-iov.c
diff --git a/tests/test-keyval.c b/tests/unit/test-keyval.c
similarity index 100%
rename from tests/test-keyval.c
rename to tests/unit/test-keyval.c
diff --git a/tests/test-logging.c b/tests/unit/test-logging.c
similarity index 100%
rename from tests/test-logging.c
rename to tests/unit/test-logging.c
diff --git a/tests/test-mul64.c b/tests/unit/test-mul64.c
similarity index 100%
rename from tests/test-mul64.c
rename to tests/unit/test-mul64.c
diff --git a/tests/test-opts-visitor.c b/tests/unit/test-opts-visitor.c
similarity index 100%
rename from tests/test-opts-visitor.c
rename to tests/unit/test-opts-visitor.c
diff --git a/tests/test-qapi-util.c b/tests/unit/test-qapi-util.c
similarity index 100%
rename from tests/test-qapi-util.c
rename to tests/unit/test-qapi-util.c
diff --git a/tests/test-qdev-global-props.c b/tests/unit/test-qdev-global-props.c
similarity index 100%
rename from tests/test-qdev-global-props.c
rename to tests/unit/test-qdev-global-props.c
diff --git a/tests/test-qdist.c b/tests/unit/test-qdist.c
similarity index 100%
rename from tests/test-qdist.c
rename to tests/unit/test-qdist.c
diff --git a/tests/test-qemu-opts.c b/tests/unit/test-qemu-opts.c
similarity index 100%
rename from tests/test-qemu-opts.c
rename to tests/unit/test-qemu-opts.c
diff --git a/tests/test-qga.c b/tests/unit/test-qga.c
similarity index 99%
rename from tests/test-qga.c
rename to tests/unit/test-qga.c
index eb33264e8e..5cb140d1b5 100644
--- a/tests/test-qga.c
+++ b/tests/unit/test-qga.c
@@ -4,7 +4,7 @@
 #include <sys/socket.h>
 #include <sys/un.h>
 
-#include "qtest/libqos/libqtest.h"
+#include "../qtest/libqos/libqtest.h"
 #include "qapi/qmp/qdict.h"
 #include "qapi/qmp/qlist.h"
 
diff --git a/tests/test-qgraph.c b/tests/unit/test-qgraph.c
similarity index 99%
rename from tests/test-qgraph.c
rename to tests/unit/test-qgraph.c
index ae2f7b2dd8..f819430e2c 100644
--- a/tests/test-qgraph.c
+++ b/tests/unit/test-qgraph.c
@@ -17,8 +17,8 @@
  */
 
 #include "qemu/osdep.h"
-#include "qtest/libqos/qgraph.h"
-#include "qtest/libqos/qgraph_internal.h"
+#include "../qtest/libqos/qgraph.h"
+#include "../qtest/libqos/qgraph_internal.h"
 
 #define MACHINE_PC "x86_64/pc"
 #define MACHINE_RASPI2 "arm/raspi2"
diff --git a/tests/test-qht.c b/tests/unit/test-qht.c
similarity index 100%
rename from tests/test-qht.c
rename to tests/unit/test-qht.c
diff --git a/tests/test-qmp-cmds.c b/tests/unit/test-qmp-cmds.c
similarity index 100%
rename from tests/test-qmp-cmds.c
rename to tests/unit/test-qmp-cmds.c
diff --git a/tests/test-qmp-event.c b/tests/unit/test-qmp-event.c
similarity index 100%
rename from tests/test-qmp-event.c
rename to tests/unit/test-qmp-event.c
diff --git a/tests/test-qobject-input-visitor.c b/tests/unit/test-qobject-input-visitor.c
similarity index 100%
rename from tests/test-qobject-input-visitor.c
rename to tests/unit/test-qobject-input-visitor.c
diff --git a/tests/test-qobject-output-visitor.c b/tests/unit/test-qobject-output-visitor.c
similarity index 100%
rename from tests/test-qobject-output-visitor.c
rename to tests/unit/test-qobject-output-visitor.c
diff --git a/tests/test-rcu-list.c b/tests/unit/test-rcu-list.c
similarity index 100%
rename from tests/test-rcu-list.c
rename to tests/unit/test-rcu-list.c
diff --git a/tests/test-rcu-simpleq.c b/tests/unit/test-rcu-simpleq.c
similarity index 100%
rename from tests/test-rcu-simpleq.c
rename to tests/unit/test-rcu-simpleq.c
diff --git a/tests/test-rcu-slist.c b/tests/unit/test-rcu-slist.c
similarity index 100%
rename from tests/test-rcu-slist.c
rename to tests/unit/test-rcu-slist.c
diff --git a/tests/test-rcu-tailq.c b/tests/unit/test-rcu-tailq.c
similarity index 100%
rename from tests/test-rcu-tailq.c
rename to tests/unit/test-rcu-tailq.c
diff --git a/tests/test-replication.c b/tests/unit/test-replication.c
similarity index 100%
rename from tests/test-replication.c
rename to tests/unit/test-replication.c
diff --git a/tests/test-shift128.c b/tests/unit/test-shift128.c
similarity index 100%
rename from tests/test-shift128.c
rename to tests/unit/test-shift128.c
diff --git a/tests/test-string-input-visitor.c b/tests/unit/test-string-input-visitor.c
similarity index 100%
rename from tests/test-string-input-visitor.c
rename to tests/unit/test-string-input-visitor.c
diff --git a/tests/test-string-output-visitor.c b/tests/unit/test-string-output-visitor.c
similarity index 100%
rename from tests/test-string-output-visitor.c
rename to tests/unit/test-string-output-visitor.c
diff --git a/tests/test-thread-pool.c b/tests/unit/test-thread-pool.c
similarity index 100%
rename from tests/test-thread-pool.c
rename to tests/unit/test-thread-pool.c
diff --git a/tests/test-throttle.c b/tests/unit/test-throttle.c
similarity index 100%
rename from tests/test-throttle.c
rename to tests/unit/test-throttle.c
diff --git a/tests/test-timed-average.c b/tests/unit/test-timed-average.c
similarity index 100%
rename from tests/test-timed-average.c
rename to tests/unit/test-timed-average.c
diff --git a/tests/test-util-filemonitor.c b/tests/unit/test-util-filemonitor.c
similarity index 100%
rename from tests/test-util-filemonitor.c
rename to tests/unit/test-util-filemonitor.c
diff --git a/tests/test-util-sockets.c b/tests/unit/test-util-sockets.c
similarity index 100%
rename from tests/test-util-sockets.c
rename to tests/unit/test-util-sockets.c
diff --git a/tests/test-uuid.c b/tests/unit/test-uuid.c
similarity index 100%
rename from tests/test-uuid.c
rename to tests/unit/test-uuid.c
diff --git a/tests/test-visitor-serialization.c b/tests/unit/test-visitor-serialization.c
similarity index 100%
rename from tests/test-visitor-serialization.c
rename to tests/unit/test-visitor-serialization.c
diff --git a/tests/test-vmstate.c b/tests/unit/test-vmstate.c
similarity index 100%
rename from tests/test-vmstate.c
rename to tests/unit/test-vmstate.c
diff --git a/tests/test-write-threshold.c b/tests/unit/test-write-threshold.c
similarity index 100%
rename from tests/test-write-threshold.c
rename to tests/unit/test-write-threshold.c
diff --git a/tests/test-x86-cpuid.c b/tests/unit/test-x86-cpuid.c
similarity index 100%
rename from tests/test-x86-cpuid.c
rename to tests/unit/test-x86-cpuid.c
diff --git a/tests/test-xbzrle.c b/tests/unit/test-xbzrle.c
similarity index 100%
rename from tests/test-xbzrle.c
rename to tests/unit/test-xbzrle.c
-- 
2.27.0



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

* [PULL 2/9] tests: Move benchmarks into a separate folder
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
  2021-03-12 17:23 ` [PULL 1/9] tests: Move unit tests into a separate directory Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 3/9] gitlab-ci.yml: Move build-tools-and-docs-debian to a better place Thomas Huth
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

Make it clear that these files are related to benchmarks by moving
them into a new folder called "bench".

Message-Id: <20210312092238.79509-1-thuth@redhat.com>
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 MAINTAINERS                                 |  2 +-
 tests/{ => bench}/atomic64-bench.c          |  0
 tests/{ => bench}/atomic_add-bench.c        |  0
 tests/{ => bench}/benchmark-crypto-cipher.c |  0
 tests/{ => bench}/benchmark-crypto-hash.c   |  0
 tests/{ => bench}/benchmark-crypto-hmac.c   |  0
 tests/bench/meson.build                     | 34 +++++++++++++++++++++
 tests/{ => bench}/qht-bench.c               |  0
 tests/meson.build                           | 34 +--------------------
 9 files changed, 36 insertions(+), 34 deletions(-)
 rename tests/{ => bench}/atomic64-bench.c (100%)
 rename tests/{ => bench}/atomic_add-bench.c (100%)
 rename tests/{ => bench}/benchmark-crypto-cipher.c (100%)
 rename tests/{ => bench}/benchmark-crypto-hash.c (100%)
 rename tests/{ => bench}/benchmark-crypto-hmac.c (100%)
 create mode 100644 tests/bench/meson.build
 rename tests/{ => bench}/qht-bench.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index e6c43c6833..9a68f09b25 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2722,7 +2722,7 @@ F: crypto/
 F: include/crypto/
 F: qapi/crypto.json
 F: tests/unit/test-crypto-*
-F: tests/benchmark-crypto-*
+F: tests/bench/benchmark-crypto-*
 F: tests/unit/crypto-tls-*
 F: tests/unit/pkix_asn1_tab.c
 F: qemu.sasl
diff --git a/tests/atomic64-bench.c b/tests/bench/atomic64-bench.c
similarity index 100%
rename from tests/atomic64-bench.c
rename to tests/bench/atomic64-bench.c
diff --git a/tests/atomic_add-bench.c b/tests/bench/atomic_add-bench.c
similarity index 100%
rename from tests/atomic_add-bench.c
rename to tests/bench/atomic_add-bench.c
diff --git a/tests/benchmark-crypto-cipher.c b/tests/bench/benchmark-crypto-cipher.c
similarity index 100%
rename from tests/benchmark-crypto-cipher.c
rename to tests/bench/benchmark-crypto-cipher.c
diff --git a/tests/benchmark-crypto-hash.c b/tests/bench/benchmark-crypto-hash.c
similarity index 100%
rename from tests/benchmark-crypto-hash.c
rename to tests/bench/benchmark-crypto-hash.c
diff --git a/tests/benchmark-crypto-hmac.c b/tests/bench/benchmark-crypto-hmac.c
similarity index 100%
rename from tests/benchmark-crypto-hmac.c
rename to tests/bench/benchmark-crypto-hmac.c
diff --git a/tests/bench/meson.build b/tests/bench/meson.build
new file mode 100644
index 0000000000..00b3c209dc
--- /dev/null
+++ b/tests/bench/meson.build
@@ -0,0 +1,34 @@
+
+qht_bench = executable('qht-bench',
+                       sources: 'qht-bench.c',
+                       dependencies: [qemuutil])
+
+executable('atomic_add-bench',
+           sources: files('atomic_add-bench.c'),
+           dependencies: [qemuutil],
+           build_by_default: false)
+
+executable('atomic64-bench',
+           sources: files('atomic64-bench.c'),
+           dependencies: [qemuutil],
+           build_by_default: false)
+
+benchs = {}
+
+if have_block
+  benchs += {
+     'benchmark-crypto-hash': [crypto],
+     'benchmark-crypto-hmac': [crypto],
+     'benchmark-crypto-cipher': [crypto],
+  }
+endif
+
+foreach bench_name, deps: benchs
+  exe = executable(bench_name, bench_name + '.c',
+                   dependencies: [qemuutil] + deps)
+  benchmark(bench_name, exe,
+            args: ['--tap', '-k'],
+            protocol: 'tap',
+            timeout: 0,
+            suite: ['speed'])
+endforeach
diff --git a/tests/qht-bench.c b/tests/bench/qht-bench.c
similarity index 100%
rename from tests/qht-bench.c
rename to tests/bench/qht-bench.c
diff --git a/tests/meson.build b/tests/meson.build
index af43fd1eaf..55a7b08275 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -1,18 +1,6 @@
 py3 = import('python').find_installation()
 
-qht_bench = executable('qht-bench',
-                       sources: 'qht-bench.c',
-                       dependencies: [qemuutil])
-
-executable('atomic_add-bench',
-           sources: files('atomic_add-bench.c'),
-           dependencies: [qemuutil],
-           build_by_default: false)
-
-executable('atomic64-bench',
-           sources: files('atomic64-bench.c'),
-           dependencies: [qemuutil],
-           build_by_default: false)
+subdir('bench')
 
 test_qapi_outputs = [
   'qapi-builtin-types.c',
@@ -73,26 +61,6 @@ test_deps = {
   'test-qht-par': qht_bench,
 }
 
-benchs = {}
-
-if have_block
-  benchs += {
-     'benchmark-crypto-hash': [crypto],
-     'benchmark-crypto-hmac': [crypto],
-     'benchmark-crypto-cipher': [crypto],
-  }
-endif
-
-foreach bench_name, deps: benchs
-  exe = executable(bench_name, bench_name + '.c',
-                   dependencies: [qemuutil] + deps)
-  benchmark(bench_name, exe,
-            args: ['--tap', '-k'],
-            protocol: 'tap',
-            timeout: 0,
-            suite: ['speed'])
-endforeach
-
 if have_tools and 'CONFIG_VHOST_USER' in config_host and 'CONFIG_LINUX' in config_host
   executable('vhost-user-bridge',
              sources: files('vhost-user-bridge.c'),
-- 
2.27.0



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

* [PULL 3/9] gitlab-ci.yml: Move build-tools-and-docs-debian to a better place
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
  2021-03-12 17:23 ` [PULL 1/9] tests: Move unit tests into a separate directory Thomas Huth
  2021-03-12 17:23 ` [PULL 2/9] tests: Move benchmarks into a separate folder Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 4/9] gitlab-ci.yml: Add some missing dependencies to the jobs Thomas Huth
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

The "build-tools-and-docs-debian" job had been added in between
the "check-system-debian" and the "accepance-system-debian" jobs
and thus separates the jobs that belong together. Move it away,
to the end of the file, next to the "pages" job that depends on it.
And while we're at it, also add a proper "needs:" line to the
job so that it can be started as soon as possible instead of always
waiting for the previous stage to finish.

Message-Id: <20210311142211.1547864-2-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.yml | 28 +++++++++++++++-------------
 1 file changed, 15 insertions(+), 13 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 07202f6ffb..871ea45a5f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -167,19 +167,6 @@ check-system-debian:
     IMAGE: debian-amd64
     MAKE_CHECK_ARGS: check
 
-# No targets are built here, just tools, docs, and unit tests. This
-# also feeds into the eventual documentation deployment steps later
-build-tools-and-docs-debian:
-  <<: *native_build_job_definition
-  variables:
-    IMAGE: debian-amd64
-    MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
-    CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
-  artifacts:
-    expire_in: 2 days
-    paths:
-      - build
-
 acceptance-system-debian:
   <<: *native_test_job_definition
   needs:
@@ -746,6 +733,21 @@ build-libvhost-user:
     - meson
     - ninja
 
+# No targets are built here, just tools, docs, and unit tests. This
+# also feeds into the eventual documentation deployment steps later
+build-tools-and-docs-debian:
+  <<: *native_build_job_definition
+  needs:
+    job: amd64-debian-container
+  variables:
+    IMAGE: debian-amd64
+    MAKE_CHECK_ARGS: check-unit check-softfloat ctags TAGS cscope
+    CONFIGURE_ARGS: --disable-system --disable-user --enable-docs --enable-tools
+  artifacts:
+    expire_in: 2 days
+    paths:
+      - build
+
 # Prepare for GitLab pages deployment. Anything copied into the
 # "public" directory will be deployed to $USER.gitlab.io/$PROJECT
 pages:
-- 
2.27.0



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

* [PULL 4/9] gitlab-ci.yml: Add some missing dependencies to the jobs
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (2 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 3/9] gitlab-ci.yml: Move build-tools-and-docs-debian to a better place Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 5/9] gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled job Thomas Huth
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

Let's make sure that all jobs have proper "needs:" statements so that
they can start as soon as possible, without having to wait for the
previous pipeline stage to finish.

Message-Id: <20210311142211.1547864-3-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.yml | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 871ea45a5f..a98f5674d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -432,6 +432,8 @@ build-user-plugins:
 
 build-user-centos7:
   <<: *native_build_job_definition
+  needs:
+    job: amd64-centos7-container
   variables:
     IMAGE: centos7
     CONFIGURE_ARGS: --disable-system --disable-tools --disable-docs
@@ -461,6 +463,8 @@ clang-system:
 
 clang-user:
   <<: *native_build_job_definition
+  needs:
+    job: amd64-debian-user-cross-container
   variables:
     IMAGE: debian-all-test-cross
     CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
@@ -470,6 +474,8 @@ clang-user:
 
 tsan-build:
   <<: *native_build_job_definition
+  needs:
+    job: amd64-ubuntu2004-container
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 --disable-docs
@@ -507,6 +513,8 @@ check-deprecated:
 # gprof/gcov are GCC features
 gprof-gcov:
   <<: *native_build_job_definition
+  needs:
+    job: amd64-ubuntu2004-container
   variables:
     IMAGE: ubuntu2004
     CONFIGURE_ARGS: --enable-gprof --enable-gcov
-- 
2.27.0



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

* [PULL 5/9] gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled job
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (3 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 4/9] gitlab-ci.yml: Add some missing dependencies to the jobs Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 6/9] gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old jobs Thomas Huth
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

Our gitlab-ci got quite slow in the past weeks, due to the immense amount
of jobs that we have, so we should try to reduce the number of jobs.
Since we already have a job that builds without TCG, we can merge
one of the "build-coroutine" jobs with it to get rid of at least one
job.

Message-Id: <20210311142211.1547864-4-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.yml | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a98f5674d6..45303cafdd 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -366,6 +366,8 @@ build-disabled:
 # Xen accelerator is not detected / selected. As result it build the
 # i386-softmmu and x86_64-softmmu with KVM being the single accelerator
 # available.
+# Also use a different coroutine implementation (which is only really of
+# interest to KVM users, i.e. with TCG disabled)
 build-tcg-disabled:
   <<: *native_build_job_definition
   needs:
@@ -375,7 +377,8 @@ build-tcg-disabled:
   script:
     - mkdir build
     - cd build
-    - ../configure --disable-tcg --audio-drv-list="" || { cat config.log meson-logs/meson-log.txt && exit 1; }
+    - ../configure --disable-tcg --audio-drv-list="" --with-coroutine=ucontext
+      || { cat config.log meson-logs/meson-log.txt && exit 1; }
     - make -j"$JOBS"
     - make check-unit
     - make check-qapi-schema
@@ -569,15 +572,6 @@ build-tci:
 
 # Alternate coroutines implementations are only really of interest to KVM users
 # However we can't test against KVM on Gitlab-CI so we can only run unit tests
-build-coroutine-ucontext:
-  <<: *native_build_job_definition
-  needs:
-    job: amd64-ubuntu2004-container
-  variables:
-    IMAGE: ubuntu2004
-    CONFIGURE_ARGS: --with-coroutine=ucontext --disable-tcg
-    MAKE_CHECK_ARGS: check-unit
-
 build-coroutine-sigaltstack:
   <<: *native_build_job_definition
   needs:
-- 
2.27.0



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

* [PULL 6/9] gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old jobs
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (4 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 5/9] gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled job Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 7/9] tests: remove "make check-speed" in favor of "make bench" Thomas Huth
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

Both, the build-crypto-old and the check-crypto-old jobs finish reasonably
fast, and the build artifacts are only used for the single corresponding
check jobs, so there is no reason for doing the check step in a separate
job here. Thus let's stop wasting artifacts space and job scheduler over-
head by simply merging the test step into the build jobs.

Message-Id: <20210311142211.1547864-5-thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 .gitlab-ci.yml | 45 ++++-----------------------------------------
 1 file changed, 4 insertions(+), 41 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 45303cafdd..0ada3dbb90 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -585,7 +585,7 @@ build-coroutine-sigaltstack:
 #
 # These jobs test old gcrypt and nettle from RHEL7
 # which had some API differences.
-build-crypto-old-nettle:
+crypto-old-nettle:
   <<: *native_build_job_definition
   needs:
     job: amd64-centos7-container
@@ -593,22 +593,9 @@ build-crypto-old-nettle:
     IMAGE: centos7
     TARGETS: x86_64-softmmu x86_64-linux-user
     CONFIGURE_ARGS: --disable-gcrypt --enable-nettle
-    MAKE_CHECK_ARGS: check-build
-  artifacts:
-    paths:
-      - build
-
-check-crypto-old-nettle:
-  <<: *native_test_job_definition
-  needs:
-    - job: build-crypto-old-nettle
-      artifacts: true
-  variables:
-    IMAGE: centos7
     MAKE_CHECK_ARGS: check
 
-
-build-crypto-old-gcrypt:
+crypto-old-gcrypt:
   <<: *native_build_job_definition
   needs:
     job: amd64-centos7-container
@@ -616,22 +603,9 @@ build-crypto-old-gcrypt:
     IMAGE: centos7
     TARGETS: x86_64-softmmu x86_64-linux-user
     CONFIGURE_ARGS: --disable-nettle --enable-gcrypt
-    MAKE_CHECK_ARGS: check-build
-  artifacts:
-    paths:
-      - build
-
-check-crypto-old-gcrypt:
-  <<: *native_test_job_definition
-  needs:
-    - job: build-crypto-old-gcrypt
-      artifacts: true
-  variables:
-    IMAGE: centos7
     MAKE_CHECK_ARGS: check
 
-
-build-crypto-only-gnutls:
+crypto-only-gnutls:
   <<: *native_build_job_definition
   needs:
     job: amd64-centos7-container
@@ -639,20 +613,9 @@ build-crypto-only-gnutls:
     IMAGE: centos7
     TARGETS: x86_64-softmmu x86_64-linux-user
     CONFIGURE_ARGS: --disable-nettle --disable-gcrypt --enable-gnutls
-    MAKE_CHECK_ARGS: check-build
-  artifacts:
-    paths:
-      - build
-
-check-crypto-only-gnutls:
-  <<: *native_test_job_definition
-  needs:
-    - job: build-crypto-only-gnutls
-      artifacts: true
-  variables:
-    IMAGE: centos7
     MAKE_CHECK_ARGS: check
 
+
 # We don't need to exercise every backend with every front-end
 build-trace-multi-user:
   <<: *native_build_job_definition
-- 
2.27.0



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

* [PULL 7/9] tests: remove "make check-speed" in favor of "make bench"
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (5 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 6/9] gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old jobs Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 8/9] MAINTAINERS: Merge the Gitlab-CI section into the generic CI section Thomas Huth
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

From: Paolo Bonzini <pbonzini@redhat.com>

"make check-speed" has been broken since the removal of ninja2make
last October.  It was just a backwards-compatibility alias for
"make bench-speed", which in turn is in principle a subset of
"make bench".  Advertise the latter and drop "make check-speed"
completely since no one has noticed.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20210310164612.285362-1-pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/Makefile.include | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/tests/Makefile.include b/tests/Makefile.include
index 799e47169c..8f220e15d1 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -3,13 +3,13 @@
 .PHONY: check-help
 check-help:
 	@echo "Regression testing targets:"
-	@echo
 	@echo " $(MAKE) check                Run block, qapi-schema, unit, softfloat, qtest and decodetree tests"
+	@echo " $(MAKE) bench                Run speed tests"
 	@echo
+	@echo "Individual test suites:"
 	@echo " $(MAKE) check-qtest-TARGET   Run qtest tests for given target"
 	@echo " $(MAKE) check-qtest          Run qtest tests"
 	@echo " $(MAKE) check-unit           Run qobject tests"
-	@echo " $(MAKE) check-speed          Run qobject speed tests"
 	@echo " $(MAKE) check-qapi-schema    Run QAPI schema tests"
 	@echo " $(MAKE) check-block          Run block tests"
 ifneq ($(filter $(all-check-targets), check-softfloat),)
@@ -155,8 +155,4 @@ check-clean:
 
 clean: check-clean
 
-# For backwards compatibility
-
-check-speed: bench-speed
-
 endif
-- 
2.27.0



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

* [PULL 8/9] MAINTAINERS: Merge the Gitlab-CI section into the generic CI section
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (6 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 7/9] tests: remove "make check-speed" in favor of "make bench" Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-12 17:23 ` [PULL 9/9] README: Add Documentation blurb Thomas Huth
  2021-03-14 17:47 ` [PULL 0/9] Gitlab-CI, tests and docs Peter Maydell
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

The status of the gitlab-CI files is currently somewhat confusing, and
it is often not quite clear whether a patch should go via my tree or
via the testing tree of Alex. That situation has grown historically...
Initially, I was the only one using the gitlab-CI, just for my private
repository there. But in the course of time, the gitlab-CI switched to
use the containers from tests/docker/ (which is not part of the gitlab-CI
section in the MAINTAINERS file), and QEMU now even switched to gitlab.com
completely for the repository and will soon use it as its gating CI, too,
so it makes way more sense if the gitlab-ci.yml files belong to the people
who are owning the qemu-project on gitlab.com and take care of the gitlab
CI there. Thus let's merge the gitlab-ci section into the common "test and
build automation" section.

And while we're at it, I'm also removing the line with Fam there for now,
since he was hardly active during the last years in this area anymore.
If he ever gets more time for this part again in the future, we surely
can add the line back again. I'm also removing the Patchew URL from this
section now since Patchew's files are not tracked in the main QEMU repo
and it is also not maintained by Alex, Philippe and myself.
The maintainers of Patchew are still listed more accurately in the wiki on
https://wiki.qemu.org/AdminContacts & https://wiki.qemu.org/Testing/CI/Patchew
instead.

Now to avoid that Alex is listed here in this section alone, Philippe and
I agreed to help as backup maintainers here, too. And Willian volunteered
to be an additional reviewer.

Message-Id: <20210309112356.737266-1-thuth@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Acked-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
Acked-by: Fam Zheng <fam@euphon.net>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 MAINTAINERS | 23 ++++++++---------------
 1 file changed, 8 insertions(+), 15 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 9a68f09b25..430872e5d6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3282,19 +3282,23 @@ F: include/hw/remote/iohub.h
 
 Build and test automation
 -------------------------
-Build and test automation
+Build and test automation, general continuous integration
 M: Alex Bennée <alex.bennee@linaro.org>
-M: Fam Zheng <fam@euphon.net>
-R: Philippe Mathieu-Daudé <philmd@redhat.com>
+M: Philippe Mathieu-Daudé <f4bug@amsat.org>
+M: Thomas Huth <thuth@redhat.com>
+R: Wainer dos Santos Moschetta <wainersm@redhat.com>
+R: Willian Rampazzo <willianr@redhat.com>
 S: Maintained
 F: .github/lockdown.yml
+F: .gitlab-ci.yml
+F: .gitlab-ci.d/
 F: .travis.yml
 F: scripts/ci/
 F: tests/docker/
 F: tests/vm/
 F: scripts/archive-source.sh
+W: https://gitlab.com/qemu-project/qemu/pipelines
 W: https://travis-ci.org/qemu/qemu
-W: http://patchew.org/QEMU/
 
 FreeBSD Hosted Continuous Integration
 M: Ed Maste <emaste@freebsd.org>
@@ -3309,17 +3313,6 @@ S: Maintained
 F: .cirrus.yml
 W: https://cirrus-ci.com/github/qemu/qemu
 
-GitLab Continuous Integration
-M: Thomas Huth <thuth@redhat.com>
-M: Philippe Mathieu-Daudé <philmd@redhat.com>
-M: Alex Bennée <alex.bennee@linaro.org>
-R: Wainer dos Santos Moschetta <wainersm@redhat.com>
-S: Maintained
-F: .gitlab-ci.yml
-F: .gitlab-ci.d/crossbuilds.yml
-F: .gitlab-ci.d/*py
-F: scripts/ci/gitlab-pipeline-status
-
 Guest Test Compilation Support
 M: Alex Bennée <alex.bennee@linaro.org>
 R: Philippe Mathieu-Daudé <f4bug@amsat.org>
-- 
2.27.0



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

* [PULL 9/9] README: Add Documentation blurb
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (7 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 8/9] MAINTAINERS: Merge the Gitlab-CI section into the generic CI section Thomas Huth
@ 2021-03-12 17:23 ` Thomas Huth
  2021-03-14 17:47 ` [PULL 0/9] Gitlab-CI, tests and docs Peter Maydell
  9 siblings, 0 replies; 11+ messages in thread
From: Thomas Huth @ 2021-03-12 17:23 UTC (permalink / raw)
  To: qemu-devel, Peter Maydell; +Cc: Alex Bennée

From: John Snow <jsnow@redhat.com>

Add it in a prominent place: Right after figuring out what QEMU is,
users may wish to know how to use it more than they want to know how to
build their own version of it.

Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20201104193032.1319248-1-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 README.rst | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/README.rst b/README.rst
index 91aa1e314c..a92c7394b7 100644
--- a/README.rst
+++ b/README.rst
@@ -31,6 +31,17 @@ QEMU as a whole is released under the GNU General Public License,
 version 2. For full licensing details, consult the LICENSE file.
 
 
+Documentation
+=============
+
+Documentation can be found hosted online at
+`<https://www.qemu.org/documentation/>`_. The documentation for the
+current development version that is available at
+`<https://www.qemu.org/docs/master/>`_ is generated from the ``docs/``
+folder in the source tree, and is built by `Sphinx
+<https://www.sphinx-doc.org/en/master/>_`.
+
+
 Building
 ========
 
-- 
2.27.0



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

* Re: [PULL 0/9] Gitlab-CI, tests and docs
  2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
                   ` (8 preceding siblings ...)
  2021-03-12 17:23 ` [PULL 9/9] README: Add Documentation blurb Thomas Huth
@ 2021-03-14 17:47 ` Peter Maydell
  9 siblings, 0 replies; 11+ messages in thread
From: Peter Maydell @ 2021-03-14 17:47 UTC (permalink / raw)
  To: Thomas Huth; +Cc: Alex Bennée, QEMU Developers

On Fri, 12 Mar 2021 at 17:24, Thomas Huth <thuth@redhat.com> wrote:
>
> The following changes since commit 363fc963054d8e82cfd55fa9b9aa130692a8dbd7:
>
>   Merge remote-tracking branch 'remotes/legoater/tags/pull-aspeed-20210309' into staging (2021-03-11 11:18:27 +0000)
>
> are available in the Git repository at:
>
>   https://gitlab.com/thuth/qemu.git tags/pull-request-2021-03-12
>
> for you to fetch changes up to 33bf47291ed575847d7de26b503c50e72f5aa6c3:
>
>   README: Add Documentation blurb (2021-03-12 15:46:30 +0100)
>
> ----------------------------------------------------------------
> * Move unit and bench tests into separate directories
> * Clean-up and improve gitlab-ci jobs
> * Drop the non-working "check-speed" makefile target
> * Minor documentation updates
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/6.0
for any user-visible changes.

-- PMM


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

end of thread, other threads:[~2021-03-14 17:48 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-12 17:23 [PULL 0/9] Gitlab-CI, tests and docs Thomas Huth
2021-03-12 17:23 ` [PULL 1/9] tests: Move unit tests into a separate directory Thomas Huth
2021-03-12 17:23 ` [PULL 2/9] tests: Move benchmarks into a separate folder Thomas Huth
2021-03-12 17:23 ` [PULL 3/9] gitlab-ci.yml: Move build-tools-and-docs-debian to a better place Thomas Huth
2021-03-12 17:23 ` [PULL 4/9] gitlab-ci.yml: Add some missing dependencies to the jobs Thomas Huth
2021-03-12 17:23 ` [PULL 5/9] gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled job Thomas Huth
2021-03-12 17:23 ` [PULL 6/9] gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old jobs Thomas Huth
2021-03-12 17:23 ` [PULL 7/9] tests: remove "make check-speed" in favor of "make bench" Thomas Huth
2021-03-12 17:23 ` [PULL 8/9] MAINTAINERS: Merge the Gitlab-CI section into the generic CI section Thomas Huth
2021-03-12 17:23 ` [PULL 9/9] README: Add Documentation blurb Thomas Huth
2021-03-14 17:47 ` [PULL 0/9] Gitlab-CI, tests and docs Peter Maydell

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.