From da668aa15b99150a8595c491aee00d5d2426aaf9 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Wed, 10 Mar 2021 07:33:14 +0100 Subject: [PATCH 1/9] tests: Move unit tests into a separate directory 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 Signed-off-by: Thomas Huth --- 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 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 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 @@ -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 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 @@ -2746,7 +2746,7 @@ M: Daniel P. Berrange S: Maintained F: io/ F: include/io/ -F: tests/test-io-* +F: tests/unit/test-io-* User authorization M: Daniel P. Berrange @@ -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 @@ -2769,7 +2769,7 @@ M: Daniel P. Berrange 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 @@ -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 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 @@ -3237,7 +3237,7 @@ M: Xie Changlong 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 #include -#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 From 3b472e71d50fe33f2e0dfdd447dde5910ddf0761 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Fri, 12 Mar 2021 10:22:38 +0100 Subject: [PATCH 2/9] tests: Move benchmarks into a separate folder 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 Signed-off-by: Thomas Huth --- 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'), From dd188e41847ced8f49c9ab6bb392e39456690f63 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 11 Mar 2021 15:22:08 +0100 Subject: [PATCH 3/9] gitlab-ci.yml: Move build-tools-and-docs-debian to a better place 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 Signed-off-by: Thomas Huth --- .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: From 4a859abd1d24fa9eb7f048b82f7b015f9cf6a8c1 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 11 Mar 2021 15:22:09 +0100 Subject: [PATCH 4/9] gitlab-ci.yml: Add some missing dependencies to the jobs 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 Signed-off-by: Thomas Huth --- .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 From 7da153e81873ca5a1037c0c43b5766dfa2357db5 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 11 Mar 2021 15:22:10 +0100 Subject: [PATCH 5/9] gitlab-ci.yml: Merge one of the coroutine jobs with the tcg-disabled job 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 Signed-off-by: Thomas Huth --- .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: From 342409564ca6fec299cea3cb618156c649748a4c Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Thu, 11 Mar 2021 15:22:11 +0100 Subject: [PATCH 6/9] gitlab-ci.yml: Merge check-crypto-old jobs into the build-crypto-old jobs 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 Signed-off-by: Thomas Huth --- .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 From 8e19c0098c290e2dea060eec113c4bf104b1f82c Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Wed, 10 Mar 2021 17:46:12 +0100 Subject: [PATCH 7/9] tests: remove "make check-speed" in favor of "make bench" "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 Signed-off-by: Paolo Bonzini Message-Id: <20210310164612.285362-1-pbonzini@redhat.com> Reviewed-by: Thomas Huth Reviewed-by: Willian Rampazzo Signed-off-by: Thomas Huth --- 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 From 9872ba0a8ab01a9af9f62e780c22edf86e0bc804 Mon Sep 17 00:00:00 2001 From: Thomas Huth Date: Tue, 9 Mar 2021 12:23:56 +0100 Subject: [PATCH 8/9] MAINTAINERS: Merge the Gitlab-CI section into the generic CI section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Willian Rampazzo Acked-by: Wainer dos Santos Moschetta Acked-by: Fam Zheng Signed-off-by: Thomas Huth --- 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 -M: Fam Zheng -R: Philippe Mathieu-Daudé +M: Philippe Mathieu-Daudé +M: Thomas Huth +R: Wainer dos Santos Moschetta +R: Willian Rampazzo 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 @@ -3309,17 +3313,6 @@ S: Maintained F: .cirrus.yml W: https://cirrus-ci.com/github/qemu/qemu -GitLab Continuous Integration -M: Thomas Huth -M: Philippe Mathieu-Daudé -M: Alex Bennée -R: Wainer dos Santos Moschetta -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 R: Philippe Mathieu-Daudé From 33bf47291ed575847d7de26b503c50e72f5aa6c3 Mon Sep 17 00:00:00 2001 From: John Snow Date: Wed, 4 Nov 2020 14:30:32 -0500 Subject: [PATCH 9/9] README: Add Documentation blurb 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 Message-Id: <20201104193032.1319248-1-jsnow@redhat.com> Signed-off-by: Thomas Huth --- 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 +``_. The documentation for the +current development version that is available at +``_ is generated from the ``docs/`` +folder in the source tree, and is built by `Sphinx +_`. + + Building ========