diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ebcef0ebe9..dce8f2d3f5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -87,11 +87,12 @@ build-tci:
  - ../configure --enable-tcg-interpreter
       --target-list="$(for tg in $TARGETS; do echo -n ${tg}'-softmmu '; done)"
  - make -j2
- - make tests/boot-serial-test tests/cdrom-test tests/pxe-test
+ - make tests/qtest/boot-serial-test tests/qtest/cdrom-test tests/qtest/pxe-test
  - for tg in $TARGETS ; do
      export QTEST_QEMU_BINARY="${tg}-softmmu/qemu-system-${tg}" ;
-     ./tests/boot-serial-test || exit 1 ;
-     ./tests/cdrom-test || exit 1 ;
+     ./tests/qtest/boot-serial-test || exit 1 ;
+     ./tests/qtest/cdrom-test || exit 1 ;
    done
- - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/pxe-test
- - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x" ./tests/pxe-test -m slow
+ - QTEST_QEMU_BINARY="x86_64-softmmu/qemu-system-x86_64" ./tests/qtest/pxe-test
+ - QTEST_QEMU_BINARY="s390x-softmmu/qemu-system-s390x"
+   ./tests/qtest/pxe-test -m slow
diff --git a/MAINTAINERS b/MAINTAINERS
index cd2dc137a3..02eab66b02 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -533,7 +533,7 @@ F: include/hw/misc/arm11scu.h
 F: include/hw/timer/a9gtimer.h
 F: include/hw/timer/arm_mptimer.h
 F: include/hw/timer/armv7m_systick.h
-F: tests/test-arm-mptimer.c
+F: tests/qtest/test-arm-mptimer.c
 
 Exynos
 M: Igor Mitsyanko <i.mitsyanko@gmail.com>
@@ -864,7 +864,7 @@ F: hw/*/nrf51*.c
 F: hw/*/microbit*.c
 F: include/hw/*/nrf51*.h
 F: include/hw/*/microbit*.h
-F: tests/microbit-test.c
+F: tests/qtest/microbit-test.c
 
 CRIS Machines
 -------------
@@ -1101,9 +1101,9 @@ F: include/hw/*/xics*
 F: pc-bios/slof.bin
 F: docs/specs/ppc-spapr-hcalls.txt
 F: docs/specs/ppc-spapr-hotplug.txt
-F: tests/spapr*
+F: tests/qtest/spapr*
 F: tests/libqos/*spapr*
-F: tests/rtas*
+F: tests/qtest/rtas*
 F: tests/libqos/rtas*
 
 PowerNV (Non-Virtualized)
@@ -1116,7 +1116,7 @@ F: hw/intc/pnv*
 F: hw/intc/xics_pnv.c
 F: include/hw/ppc/pnv*
 F: pc-bios/skiboot.lid
-F: tests/pnv*
+F: tests/qtest/pnv*
 
 virtex_ml507
 M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
@@ -1264,7 +1264,7 @@ F: hw/misc/sga.c
 F: hw/isa/apm.c
 F: include/hw/isa/apm.h
 F: tests/test-x86-cpuid.c
-F: tests/test-x86-cpuid-compat.c
+F: tests/qtest/test-x86-cpuid-compat.c
 
 PC Chipset
 M: Michael S. Tsirkin <mst@redhat.com>
@@ -1360,9 +1360,9 @@ F: hw/ide/
 F: hw/block/block.c
 F: hw/block/cdrom.c
 F: hw/block/hd-geometry.c
-F: tests/ide-test.c
-F: tests/ahci-test.c
-F: tests/cdrom-test.c
+F: tests/qtest/ide-test.c
+F: tests/qtest/ahci-test.c
+F: tests/qtest/cdrom-test.c
 F: tests/libqos/ahci*
 T: git https://github.com/jnsnow/qemu.git ide
 
@@ -1372,7 +1372,7 @@ S: Maintained
 F: include/hw/ipmi/*
 F: hw/ipmi/*
 F: hw/smbios/smbios_type_38.c
-F: tests/ipmi*
+F: tests/qtest/ipmi*
 T: git https://github.com/cminyard/qemu.git master-ipmi-rebase
 
 Floppy
@@ -1381,7 +1381,7 @@ L: qemu-block@nongnu.org
 S: Supported
 F: hw/block/fdc.c
 F: include/hw/block/fdc.h
-F: tests/fdc-test.c
+F: tests/qtest/fdc-test.c
 T: git https://github.com/jnsnow/qemu.git ide
 
 OMAP
@@ -1419,8 +1419,8 @@ F: hw/acpi/*
 F: hw/smbios/*
 F: hw/i386/acpi-build.[hc]
 F: hw/arm/virt-acpi-build.c
-F: tests/bios-tables-test.c
-F: tests/acpi-utils.[hc]
+F: tests/qtest/bios-tables-test.c
+F: tests/qtest/acpi-utils.[hc]
 F: tests/data/acpi/
 
 ppc4xx
@@ -1443,7 +1443,7 @@ M: Jason Wang <jasowang@redhat.com>
 S: Odd Fixes
 F: hw/net/
 F: include/hw/net/
-F: tests/virtio-net-test.c
+F: tests/qtest/virtio-net-test.c
 F: docs/virtio-net-failover.rst
 T: git https://github.com/jasowang/qemu.git net
 
@@ -1460,7 +1460,7 @@ R: Fam Zheng <fam@euphon.net>
 S: Supported
 F: include/hw/scsi/*
 F: hw/scsi/*
-F: tests/virtio-scsi-test.c
+F: tests/qtest/virtio-scsi-test.c
 T: git https://github.com/bonzini/qemu.git scsi-next
 
 SSI
@@ -1470,7 +1470,7 @@ F: hw/ssi/*
 F: hw/block/m25p80.c
 F: include/hw/ssi/ssi.h
 X: hw/ssi/xilinx_*
-F: tests/m25p80-test.c
+F: tests/qtest/m25p80-test.c
 
 Xilinx SPI
 M: Alistair Francis <alistair@alistair23.me>
@@ -1484,13 +1484,13 @@ F: include/hw/sd/sd*
 F: hw/sd/core.c
 F: hw/sd/sd*
 F: hw/sd/ssi-sd.c
-F: tests/sd*
+F: tests/qtest/sd*
 
 USB
 M: Gerd Hoffmann <kraxel@redhat.com>
 S: Maintained
 F: hw/usb/*
-F: tests/usb-*-test.c
+F: tests/qtest/usb-*-test.c
 F: docs/usb2.txt
 F: docs/usb-storage.txt
 F: include/hw/usb.h
@@ -1552,7 +1552,6 @@ F: hw/virtio/Makefile.objs
 F: hw/virtio/trace-events
 F: net/vhost-user.c
 F: include/hw/virtio/
-F: tests/virtio-balloon-test.c
 
 virtio-9p
 M: Greg Kurz <groug@kaod.org>
@@ -1560,7 +1559,7 @@ S: Odd Fixes
 F: hw/9pfs/
 X: hw/9pfs/xen-9p*
 F: fsdev/
-F: tests/virtio-9p-test.c
+F: tests/qtest/virtio-9p-test.c
 T: git https://github.com/gkurz/qemu.git 9p-next
 
 virtio-blk
@@ -1569,7 +1568,7 @@ L: qemu-block@nongnu.org
 S: Supported
 F: hw/block/virtio-blk.c
 F: hw/block/dataplane/*
-F: tests/virtio-blk-test.c
+F: tests/qtest/virtio-blk-test.c
 T: git https://github.com/stefanha/qemu.git block
 
 virtio-ccw
@@ -1597,8 +1596,7 @@ S: Supported
 F: hw/char/virtio-serial-bus.c
 F: hw/char/virtio-console.c
 F: include/hw/virtio/virtio-serial.h
-F: tests/virtio-console-test.c
-F: tests/virtio-serial-test.c
+F: tests/qtest/virtio-serial-test.c
 
 virtio-rng
 M: Laurent Vivier <lvivier@redhat.com>
@@ -1608,7 +1606,7 @@ F: hw/virtio/virtio-rng.c
 F: include/hw/virtio/virtio-rng.h
 F: include/sysemu/rng*.h
 F: backends/rng*.c
-F: tests/virtio-rng-test.c
+F: tests/qtest/virtio-rng-test.c
 
 virtio-crypto
 M: Gonglei <arei.gonglei@huawei.com>
@@ -1622,7 +1620,7 @@ M: Keith Busch <keith.busch@intel.com>
 L: qemu-block@nongnu.org
 S: Supported
 F: hw/block/nvme*
-F: tests/nvme-test.c
+F: tests/qtest/nvme-test.c
 
 megasas
 M: Hannes Reinecke <hare@suse.com>
@@ -1630,7 +1628,7 @@ L: qemu-block@nongnu.org
 S: Supported
 F: hw/scsi/megasas.c
 F: hw/scsi/mfi.h
-F: tests/megasas-test.c
+F: tests/qtest/megasas-test.c
 
 Network packet abstractions
 M: Dmitry Fleytman <dmitry.fleytman@gmail.com>
@@ -1645,7 +1643,7 @@ M: Dmitry Fleytman <dmitry.fleytman@gmail.com>
 S: Maintained
 F: hw/net/vmxnet*
 F: hw/scsi/vmw_pvscsi*
-F: tests/vmxnet3-test.c
+F: tests/qtest/vmxnet3-test.c
 
 Rocker
 M: Jiri Pirko <jiri@resnulli.us>
@@ -1693,7 +1691,7 @@ F: docs/generic-loader.txt
 Intel Hexadecimal Object File Loader
 M: Su Hang <suhang16@mails.ucas.ac.cn>
 S: Maintained
-F: tests/hexloader-test.c
+F: tests/qtest/hexloader-test.c
 F: tests/data/hex-loader/test.hex
 
 CHRP NVRAM
@@ -1701,7 +1699,7 @@ M: Thomas Huth <thuth@redhat.com>
 S: Maintained
 F: hw/nvram/chrp_nvram.c
 F: include/hw/nvram/chrp_nvram.h
-F: tests/prom-env-test.c
+F: tests/qtest/prom-env-test.c
 
 VM Generation ID
 M: Ben Warren <ben@skyportsystems.com>
@@ -1709,7 +1707,7 @@ S: Maintained
 F: hw/acpi/vmgenid.c
 F: include/hw/acpi/vmgenid.h
 F: docs/specs/vmgenid.txt
-F: tests/vmgenid-test.c
+F: tests/qtest/vmgenid-test.c
 F: stubs/vmgenid.c
 
 Unimplemented device
@@ -1779,7 +1777,7 @@ F: stubs/fw_cfg.c
 F: include/hw/nvram/fw_cfg.h
 F: include/standard-headers/linux/qemu_fw_cfg.h
 F: tests/libqos/fw_cfg.c
-F: tests/fw_cfg-test.c
+F: tests/qtest/fw_cfg-test.c
 T: git https://github.com/philmd/qemu.git fw_cfg-next
 
 XIVE
@@ -1799,9 +1797,9 @@ S: Maintained
 F: audio/
 F: hw/audio/
 F: include/hw/audio/
-F: tests/ac97-test.c
-F: tests/es1370-test.c
-F: tests/intel-hda-test.c
+F: tests/qtest/ac97-test.c
+F: tests/qtest/es1370-test.c
+F: tests/qtest/intel-hda-test.c
 
 Block layer core
 M: Kevin Wolf <kwolf@redhat.com>
@@ -2002,7 +2000,7 @@ F: monitor/hmp*
 F: hmp.h
 F: hmp-commands*.hx
 F: include/monitor/hmp-target.h
-F: tests/test-hmp.c
+F: tests/qtest/test-hmp.c
 F: include/qemu/qemu-print.h
 F: util/qemu-print.c
 
@@ -2128,8 +2126,8 @@ F: qapi/error.json
 F: docs/devel/*qmp-*
 F: docs/interop/*qmp-*
 F: scripts/qmp/
-F: tests/qmp-test.c
-F: tests/qmp-cmd-test.c
+F: tests/qtest/qmp-test.c
+F: tests/qtest/qmp-cmd-test.c
 T: git https://repo.or.cz/qemu/armbru.git qapi-next
 
 qtest
@@ -2139,9 +2137,8 @@ R: Paolo Bonzini <pbonzini@redhat.com>
 S: Maintained
 F: qtest.c
 F: accel/qtest.c
-F: tests/libqtest*
 F: tests/libqos/
-F: tests/*-test.c
+F: tests/qtest/
 
 Register API
 M: Alistair Francis <alistair@alistair23.me>
@@ -2185,7 +2182,7 @@ F: include/hw/acpi/tpm.h
 F: include/sysemu/tpm*
 F: qapi/tpm.json
 F: backends/tpm.c
-F: tests/*tpm*
+F: tests/qtest/*tpm*
 T: git https://github.com/stefanberger/qemu-tpm.git tpm-next
 
 Checkpatch
@@ -2202,7 +2199,7 @@ F: include/migration/
 F: migration/
 F: scripts/vmstate-static-checker.py
 F: tests/vmstate-static-checker-data/
-F: tests/migration-test.c
+F: tests/qtest/migration-test.c
 F: docs/devel/migration.rst
 F: qapi/migration.json
 
diff --git a/configure b/configure
index 28ee2a254f..1b8796fc21 100755
--- a/configure
+++ b/configure
@@ -7963,8 +7963,8 @@ fi
 # so the build tree will be missing the link back to the new file, and
 # tests might fail. Prefer to keep the relevant files in their own
 # directory and symlink the directory instead.
-DIRS="tests tests/tcg tests/tcg/lm32 tests/libqos tests/qapi-schema tests/qemu-iotests tests/vm"
-DIRS="$DIRS tests/fp tests/qgraph"
+DIRS="tests tests/tcg tests/tcg/lm32 tests/libqos tests/qapi-schema tests/qtest"
+DIRS="$DIRS tests/qemu-iotests tests/vm tests/fp tests/qgraph"
 DIRS="$DIRS docs docs/interop fsdev scsi"
 DIRS="$DIRS pc-bios/optionrom pc-bios/s390-ccw"
 DIRS="$DIRS roms/seabios roms/vgabios"
diff --git a/tests/Makefile.include b/tests/Makefile.include
index 6bacf14d3f..bd2bcd6f1b 100644
--- a/tests/Makefile.include
+++ b/tests/Makefile.include
@@ -515,7 +515,7 @@ generated-files-y += tests/include/test-qapi-events-sub-module.h
 generated-files-y += tests/test-qapi-events-sub-sub-module.h
 generated-files-y += tests/test-qapi-introspect.h
 
-QEMU_CFLAGS += -I$(SRC_PATH)/tests
+QEMU_CFLAGS += -I$(SRC_PATH)/tests -I$(SRC_PATH)/tests/qtest
 
 
 # Deps that are common to various different sets of tests below
@@ -648,18 +648,18 @@ tests/qapi-schema/doc-good.test.texi: $(SRC_PATH)/tests/qapi-schema/doc-good.jso
 	@mv tests/qapi-schema/doc-good-qapi-doc.texi $@
 	@rm -f tests/qapi-schema/doc-good-qapi-*.[ch] tests/qapi-schema/doc-good-qmp-*.[ch]
 
-tests/dbus-vmstate1.h tests/dbus-vmstate1.c: tests/dbus-vmstate1-gen-timestamp ;
-tests/dbus-vmstate1-gen-timestamp: $(SRC_PATH)/tests/dbus-vmstate1.xml
+tests/qtest/dbus-vmstate1.h tests/qtest/dbus-vmstate1.c: tests/qtest/dbus-vmstate1-gen-timestamp ;
+tests/qtest/dbus-vmstate1-gen-timestamp: $(SRC_PATH)/tests/qtest/dbus-vmstate1.xml
 	$(call quiet-command,$(GDBUS_CODEGEN) $< \
-		--interface-prefix org.qemu --generate-c-code tests/dbus-vmstate1, \
+		--interface-prefix org.qemu --generate-c-code tests/qtest/dbus-vmstate1, \
 		"GEN","$(@:%-timestamp=%)")
 	@>$@
 
-tests/dbus-vmstate-test.o-cflags := -DSRCDIR="$(SRC_PATH)"
-tests/dbus-vmstate1.o-cflags := $(GIO_CFLAGS)
-tests/dbus-vmstate1.o-libs := $(GIO_LIBS)
+tests/qtest/dbus-vmstate-test.o-cflags := -DSRCDIR="$(SRC_PATH)"
+tests/qtest/dbus-vmstate1.o-cflags := $(GIO_CFLAGS)
+tests/qtest/dbus-vmstate1.o-libs := $(GIO_LIBS)
 
-tests/dbus-vmstate-test.o: tests/dbus-vmstate1.h
+tests/qtest/dbus-vmstate-test.o: tests/qtest/dbus-vmstate1.h
 
 tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y)
 tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y)
@@ -708,12 +708,12 @@ tests/test-authz-pam$(EXESUF): tests/test-authz-pam.o $(test-authz-obj-y)
 tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y)
 tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \
         tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y)
-tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \
-	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
-tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y)
-tests/tpm-tis-swtpm-test$(EXESUF): tests/tpm-tis-swtpm-test.o tests/tpm-emu.o \
-	tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y)
-tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y)
+tests/qtest/tpm-crb-swtpm-test$(EXESUF): tests/qtest/tpm-crb-swtpm-test.o tests/qtest/tpm-emu.o \
+	tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y)
+tests/qtest/tpm-crb-test$(EXESUF): tests/qtest/tpm-crb-test.o tests/qtest/tpm-emu.o $(test-io-obj-y)
+tests/qtest/tpm-tis-swtpm-test$(EXESUF): tests/qtest/tpm-tis-swtpm-test.o tests/qtest/tpm-emu.o \
+	tests/qtest/tpm-util.o tests/qtest/tpm-tests.o $(test-io-obj-y)
+tests/qtest/tpm-tis-test$(EXESUF): tests/qtest/tpm-tis-test.o tests/qtest/tpm-emu.o $(test-io-obj-y)
 tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \
         tests/io-channel-helpers.o $(test-io-obj-y)
 tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \
@@ -743,7 +743,7 @@ libqos-pc-obj-y += tests/libqos/ahci.o
 libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o
 
 # Devices
-qos-test-obj-y = tests/qos-test.o $(libqgraph-obj-y)
+qos-test-obj-y = tests/qtest/qos-test.o $(libqgraph-obj-y)
 qos-test-obj-y += $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
 qos-test-obj-y += tests/libqos/e1000e.o
 qos-test-obj-y += tests/libqos/i2c.o
@@ -776,98 +776,98 @@ qos-test-obj-y += tests/libqos/ppc64_pseries-machine.o
 qos-test-obj-y += tests/libqos/x86_64_pc-machine.o
 
 # Tests
-qos-test-obj-y += tests/ac97-test.o
-qos-test-obj-y += tests/ds1338-test.o
-qos-test-obj-y += tests/e1000-test.o
-qos-test-obj-y += tests/e1000e-test.o
-qos-test-obj-y += tests/eepro100-test.o
-qos-test-obj-y += tests/es1370-test.o
-qos-test-obj-y += tests/ipoctal232-test.o
-qos-test-obj-y += tests/megasas-test.o
-qos-test-obj-y += tests/ne2000-test.o
-qos-test-obj-y += tests/nvme-test.o
-qos-test-obj-y += tests/pca9552-test.o
-qos-test-obj-y += tests/pci-test.o
-qos-test-obj-y += tests/pcnet-test.o
-qos-test-obj-y += tests/sdhci-test.o
-qos-test-obj-y += tests/spapr-phb-test.o
-qos-test-obj-y += tests/tmp105-test.o
-qos-test-obj-y += tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
-qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
-qos-test-obj-y += tests/virtio-test.o
-qos-test-obj-$(CONFIG_VIRTFS) += tests/virtio-9p-test.o
-qos-test-obj-y += tests/virtio-blk-test.o
-qos-test-obj-y += tests/virtio-net-test.o
-qos-test-obj-y += tests/virtio-rng-test.o
-qos-test-obj-y += tests/virtio-scsi-test.o
-qos-test-obj-y += tests/virtio-serial-test.o
-qos-test-obj-y += tests/vmxnet3-test.o
+qos-test-obj-y += tests/qtest/ac97-test.o
+qos-test-obj-y += tests/qtest/ds1338-test.o
+qos-test-obj-y += tests/qtest/e1000-test.o
+qos-test-obj-y += tests/qtest/e1000e-test.o
+qos-test-obj-y += tests/qtest/eepro100-test.o
+qos-test-obj-y += tests/qtest/es1370-test.o
+qos-test-obj-y += tests/qtest/ipoctal232-test.o
+qos-test-obj-y += tests/qtest/megasas-test.o
+qos-test-obj-y += tests/qtest/ne2000-test.o
+qos-test-obj-y += tests/qtest/nvme-test.o
+qos-test-obj-y += tests/qtest/pca9552-test.o
+qos-test-obj-y += tests/qtest/pci-test.o
+qos-test-obj-y += tests/qtest/pcnet-test.o
+qos-test-obj-y += tests/qtest/sdhci-test.o
+qos-test-obj-y += tests/qtest/spapr-phb-test.o
+qos-test-obj-y += tests/qtest/tmp105-test.o
+qos-test-obj-y += tests/qtest/usb-hcd-ohci-test.o $(libqos-usb-obj-y)
+qos-test-obj-$(CONFIG_VHOST_NET_USER) += tests/qtest/vhost-user-test.o $(chardev-obj-y) $(test-io-obj-y)
+qos-test-obj-y += tests/qtest/virtio-test.o
+qos-test-obj-$(CONFIG_VIRTFS) += tests/qtest/virtio-9p-test.o
+qos-test-obj-y += tests/qtest/virtio-blk-test.o
+qos-test-obj-y += tests/qtest/virtio-net-test.o
+qos-test-obj-y += tests/qtest/virtio-rng-test.o
+qos-test-obj-y += tests/qtest/virtio-scsi-test.o
+qos-test-obj-y += tests/qtest/virtio-serial-test.o
+qos-test-obj-y += tests/qtest/vmxnet3-test.o
 
 check-unit-y += tests/test-qgraph$(EXESUF)
 tests/test-qgraph$(EXESUF): tests/test-qgraph.o $(libqgraph-obj-y)
 
 check-qtest-generic-y += qos-test
-tests/qos-test$(EXESUF): $(qos-test-obj-y)
-
-tests/qmp-test$(EXESUF): tests/qmp-test.o
-tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o
-tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o
-tests/rtc-test$(EXESUF): tests/rtc-test.o
-tests/m48t59-test$(EXESUF): tests/m48t59-test.o
-tests/hexloader-test$(EXESUF): tests/hexloader-test.o
-tests/pflash-cfi02$(EXESUF): tests/pflash-cfi02-test.o
-tests/endianness-test$(EXESUF): tests/endianness-test.o
-tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y)
-tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y)
-tests/fdc-test$(EXESUF): tests/fdc-test.o
-tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y)
-tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y) qemu-img$(EXESUF)
-tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o
-tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o
-tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o $(libqos-obj-y)
-tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y)
-tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y)
-tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \
-	tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y)
-tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y)
-tests/microbit-test$(EXESUF): tests/microbit-test.o
-tests/m25p80-test$(EXESUF): tests/m25p80-test.o
-tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y)
-tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y)
-tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y)
-tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y)
-tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o
-tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o
-tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y)
-tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o
-tests/display-vga-test$(EXESUF): tests/display-vga-test.o
-tests/qom-test$(EXESUF): tests/qom-test.o
-tests/test-hmp$(EXESUF): tests/test-hmp.o
-tests/machine-none-test$(EXESUF): tests/machine-none-test.o
-tests/device-plug-test$(EXESUF): tests/device-plug-test.o
-tests/drive_del-test$(EXESUF): tests/drive_del-test.o
-tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o
-tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o
-tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o
-tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o
-tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
-tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
-tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
-tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o
-tests/migration-test$(EXESUF): tests/migration-test.o tests/migration-helpers.o
-tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o
-tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y)
-tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y)
-tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y)
-tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y)
-tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
-tests/dbus-vmstate-test$(EXESUF): tests/dbus-vmstate-test.o tests/migration-helpers.o tests/dbus-vmstate1.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
-tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
-tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o
-tests/numa-test$(EXESUF): tests/numa-test.o
-tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o
-tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y)
-tests/arm-cpu-features$(EXESUF): tests/arm-cpu-features.o
+tests/qtest/qos-test$(EXESUF): $(qos-test-obj-y)
+
+tests/qtest/qmp-test$(EXESUF): tests/qtest/qmp-test.o
+tests/qtest/qmp-cmd-test$(EXESUF): tests/qtest/qmp-cmd-test.o
+tests/qtest/device-introspect-test$(EXESUF): tests/qtest/device-introspect-test.o
+tests/qtest/rtc-test$(EXESUF): tests/qtest/rtc-test.o
+tests/qtest/m48t59-test$(EXESUF): tests/qtest/m48t59-test.o
+tests/qtest/hexloader-test$(EXESUF): tests/qtest/hexloader-test.o
+tests/qtest/pflash-cfi02$(EXESUF): tests/qtest/pflash-cfi02-test.o
+tests/qtest/endianness-test$(EXESUF): tests/qtest/endianness-test.o
+tests/qtest/prom-env-test$(EXESUF): tests/qtest/prom-env-test.o $(libqos-obj-y)
+tests/qtest/rtas-test$(EXESUF): tests/qtest/rtas-test.o $(libqos-spapr-obj-y)
+tests/qtest/fdc-test$(EXESUF): tests/qtest/fdc-test.o
+tests/qtest/ide-test$(EXESUF): tests/qtest/ide-test.o $(libqos-pc-obj-y)
+tests/qtest/ahci-test$(EXESUF): tests/qtest/ahci-test.o $(libqos-pc-obj-y) qemu-img$(EXESUF)
+tests/qtest/ipmi-kcs-test$(EXESUF): tests/qtest/ipmi-kcs-test.o
+tests/qtest/ipmi-bt-test$(EXESUF): tests/qtest/ipmi-bt-test.o
+tests/qtest/hd-geo-test$(EXESUF): tests/qtest/hd-geo-test.o $(libqos-obj-y)
+tests/qtest/boot-order-test$(EXESUF): tests/qtest/boot-order-test.o $(libqos-obj-y)
+tests/qtest/boot-serial-test$(EXESUF): tests/qtest/boot-serial-test.o $(libqos-obj-y)
+tests/qtest/bios-tables-test$(EXESUF): tests/qtest/bios-tables-test.o \
+	tests/qtest/boot-sector.o tests/qtest/acpi-utils.o $(libqos-obj-y)
+tests/qtest/pxe-test$(EXESUF): tests/qtest/pxe-test.o tests/qtest/boot-sector.o $(libqos-obj-y)
+tests/qtest/microbit-test$(EXESUF): tests/qtest/microbit-test.o
+tests/qtest/m25p80-test$(EXESUF): tests/qtest/m25p80-test.o
+tests/qtest/i440fx-test$(EXESUF): tests/qtest/i440fx-test.o $(libqos-pc-obj-y)
+tests/qtest/q35-test$(EXESUF): tests/qtest/q35-test.o $(libqos-pc-obj-y)
+tests/qtest/fw_cfg-test$(EXESUF): tests/qtest/fw_cfg-test.o $(libqos-pc-obj-y)
+tests/qtest/rtl8139-test$(EXESUF): tests/qtest/rtl8139-test.o $(libqos-pc-obj-y)
+tests/qtest/pnv-xscom-test$(EXESUF): tests/qtest/pnv-xscom-test.o
+tests/qtest/wdt_ib700-test$(EXESUF): tests/qtest/wdt_ib700-test.o
+tests/qtest/tco-test$(EXESUF): tests/qtest/tco-test.o $(libqos-pc-obj-y)
+tests/qtest/virtio-ccw-test$(EXESUF): tests/qtest/virtio-ccw-test.o
+tests/qtest/display-vga-test$(EXESUF): tests/qtest/display-vga-test.o
+tests/qtest/qom-test$(EXESUF): tests/qtest/qom-test.o
+tests/qtest/test-hmp$(EXESUF): tests/qtest/test-hmp.o
+tests/qtest/machine-none-test$(EXESUF): tests/qtest/machine-none-test.o
+tests/qtest/device-plug-test$(EXESUF): tests/qtest/device-plug-test.o
+tests/qtest/drive_del-test$(EXESUF): tests/qtest/drive_del-test.o
+tests/qtest/pvpanic-test$(EXESUF): tests/qtest/pvpanic-test.o
+tests/qtest/i82801b11-test$(EXESUF): tests/qtest/i82801b11-test.o
+tests/qtest/intel-hda-test$(EXESUF): tests/qtest/intel-hda-test.o
+tests/qtest/ioh3420-test$(EXESUF): tests/qtest/ioh3420-test.o
+tests/qtest/usb-hcd-uhci-test$(EXESUF): tests/qtest/usb-hcd-uhci-test.o $(libqos-usb-obj-y)
+tests/qtest/usb-hcd-ehci-test$(EXESUF): tests/qtest/usb-hcd-ehci-test.o $(libqos-usb-obj-y)
+tests/qtest/usb-hcd-xhci-test$(EXESUF): tests/qtest/usb-hcd-xhci-test.o $(libqos-usb-obj-y)
+tests/qtest/cpu-plug-test$(EXESUF): tests/qtest/cpu-plug-test.o
+tests/qtest/migration-test$(EXESUF): tests/qtest/migration-test.o tests/qtest/migration-helpers.o
+tests/qtest/qemu-iotests/qtest/socket_scm_helper$(EXESUF): tests/qtest/qemu-iotests/qtest/socket_scm_helper.o
+tests/qtest/test-netfilter$(EXESUF): tests/qtest/test-netfilter.o $(qtest-obj-y)
+tests/qtest/test-filter-mirror$(EXESUF): tests/qtest/test-filter-mirror.o $(qtest-obj-y)
+tests/qtest/test-filter-redirector$(EXESUF): tests/qtest/test-filter-redirector.o $(qtest-obj-y)
+tests/qtest/test-x86-cpuid-compat$(EXESUF): tests/qtest/test-x86-cpuid-compat.o $(qtest-obj-y)
+tests/qtest/ivshmem-test$(EXESUF): tests/qtest/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
+tests/qtest/dbus-vmstate-test$(EXESUF): tests/qtest/dbus-vmstate-test.o tests/qtest/migration-helpers.o tests/qtest/dbus-vmstate1.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y)
+tests/qtest/vhost-user-bridge$(EXESUF): tests/qtest/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a
+tests/qtest/test-arm-mptimer$(EXESUF): tests/qtest/test-arm-mptimer.o
+tests/qtest/numa-test$(EXESUF): tests/qtest/numa-test.o
+tests/qtest/vmgenid-test$(EXESUF): tests/qtest/vmgenid-test.o tests/qtest/boot-sector.o tests/qtest/acpi-utils.o
+tests/qtest/cdrom-test$(EXESUF): tests/qtest/cdrom-test.o tests/qtest/boot-sector.o $(libqos-obj-y)
+tests/qtest/arm-cpu-features$(EXESUF): tests/qtest/arm-cpu-features.o
 
 tests/migration/stress$(EXESUF): tests/migration/stress.o
 	$(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@")
@@ -886,13 +886,13 @@ tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF)
 TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS)))
 ifeq ($(CONFIG_POSIX),y)
 QTEST_TARGETS = $(TARGETS)
-check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y:%=tests/%$(EXESUF)))
-check-qtest-y += $(check-qtest-generic-y:%=tests/%$(EXESUF))
+check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y:%=tests/qtest/%$(EXESUF)))
+check-qtest-y += $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF))
 else
 QTEST_TARGETS =
 endif
 
-qtest-obj-y = tests/libqtest.o $(test-util-obj-y)
+qtest-obj-y = tests/qtest/libqtest.o $(test-util-obj-y)
 $(check-qtest-y): $(qtest-obj-y)
 
 tests/test-qga$(EXESUF): qemu-ga$(EXESUF)
@@ -937,7 +937,7 @@ endef
 
 .PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS))
 $(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: %-softmmu/all $(check-qtest-y)
-	$(call do_test_human,$(check-qtest-$*-y:%=tests/%$(EXESUF)) $(check-qtest-generic-y:%=tests/%$(EXESUF)), \
+	$(call do_test_human,$(check-qtest-$*-y:%=tests/qtest/%$(EXESUF)) $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF)), \
 	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
 	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
 
@@ -950,7 +950,7 @@ check-speed: $(check-speed-y)
 # gtester tests with TAP output
 
 $(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: %-softmmu/all $(check-qtest-y)
-	$(call do_test_tap, $(check-qtest-$*-y:%=tests/%$(EXESUF)) $(check-qtest-generic-y:%=tests/%$(EXESUF)), \
+	$(call do_test_tap, $(check-qtest-$*-y:%=tests/qtest/%$(EXESUF)) $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF)), \
 	  QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \
 	  QTEST_QEMU_IMG=qemu-img$(EXESUF))
 
@@ -1215,10 +1215,10 @@ check-block: $(patsubst %,check-%, $(check-block-y))
 endif
 check: check-block check-qapi-schema check-unit check-softfloat check-qtest check-decodetree
 check-clean:
-	rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y)
-	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y:%=tests/%$(EXESUF))) $(check-qtest-generic-y:%=tests/%$(EXESUF)))
+	rm -rf $(check-unit-y) tests/*.o tests/*/*.o $(QEMU_IOTESTS_HELPERS-y)
+	rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y:%=tests/qtest/%$(EXESUF))) $(check-qtest-generic-y:%=tests/qtest/%$(EXESUF)))
 	rm -f tests/test-qapi-gen-timestamp
-	rm -f tests/dbus-vmstate1-gen-timestamp
+	rm -f tests/qtest/dbus-vmstate1-gen-timestamp
 	rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR)
 
 clean: check-clean
@@ -1228,6 +1228,7 @@ clean: check-clean
 all: $(QEMU_IOTESTS_HELPERS-y)
 
 -include $(wildcard tests/*.d)
+-include $(wildcard tests/qtest/*.d)
 -include $(wildcard tests/libqos/*.d)
 
 endif
diff --git a/tests/ac97-test.c b/tests/qtest/ac97-test.c
similarity index 100%
rename from tests/ac97-test.c
rename to tests/qtest/ac97-test.c
diff --git a/tests/acpi-utils.c b/tests/qtest/acpi-utils.c
similarity index 100%
rename from tests/acpi-utils.c
rename to tests/qtest/acpi-utils.c
diff --git a/tests/acpi-utils.h b/tests/qtest/acpi-utils.h
similarity index 100%
rename from tests/acpi-utils.h
rename to tests/qtest/acpi-utils.h
diff --git a/tests/ahci-test.c b/tests/qtest/ahci-test.c
similarity index 100%
rename from tests/ahci-test.c
rename to tests/qtest/ahci-test.c
diff --git a/tests/arm-cpu-features.c b/tests/qtest/arm-cpu-features.c
similarity index 100%
rename from tests/arm-cpu-features.c
rename to tests/qtest/arm-cpu-features.c
diff --git a/tests/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h
similarity index 100%
rename from tests/bios-tables-test-allowed-diff.h
rename to tests/qtest/bios-tables-test-allowed-diff.h
diff --git a/tests/bios-tables-test.c b/tests/qtest/bios-tables-test.c
similarity index 100%
rename from tests/bios-tables-test.c
rename to tests/qtest/bios-tables-test.c
diff --git a/tests/boot-order-test.c b/tests/qtest/boot-order-test.c
similarity index 100%
rename from tests/boot-order-test.c
rename to tests/qtest/boot-order-test.c
diff --git a/tests/boot-sector.c b/tests/qtest/boot-sector.c
similarity index 100%
rename from tests/boot-sector.c
rename to tests/qtest/boot-sector.c
diff --git a/tests/boot-sector.h b/tests/qtest/boot-sector.h
similarity index 100%
rename from tests/boot-sector.h
rename to tests/qtest/boot-sector.h
diff --git a/tests/boot-serial-test.c b/tests/qtest/boot-serial-test.c
similarity index 100%
rename from tests/boot-serial-test.c
rename to tests/qtest/boot-serial-test.c
diff --git a/tests/cdrom-test.c b/tests/qtest/cdrom-test.c
similarity index 100%
rename from tests/cdrom-test.c
rename to tests/qtest/cdrom-test.c
diff --git a/tests/cpu-plug-test.c b/tests/qtest/cpu-plug-test.c
similarity index 100%
rename from tests/cpu-plug-test.c
rename to tests/qtest/cpu-plug-test.c
diff --git a/tests/dbus-vmstate-test.c b/tests/qtest/dbus-vmstate-test.c
similarity index 100%
rename from tests/dbus-vmstate-test.c
rename to tests/qtest/dbus-vmstate-test.c
diff --git a/tests/dbus-vmstate1.xml b/tests/qtest/dbus-vmstate1.xml
similarity index 100%
rename from tests/dbus-vmstate1.xml
rename to tests/qtest/dbus-vmstate1.xml
diff --git a/tests/device-introspect-test.c b/tests/qtest/device-introspect-test.c
similarity index 100%
rename from tests/device-introspect-test.c
rename to tests/qtest/device-introspect-test.c
diff --git a/tests/device-plug-test.c b/tests/qtest/device-plug-test.c
similarity index 100%
rename from tests/device-plug-test.c
rename to tests/qtest/device-plug-test.c
diff --git a/tests/display-vga-test.c b/tests/qtest/display-vga-test.c
similarity index 100%
rename from tests/display-vga-test.c
rename to tests/qtest/display-vga-test.c
diff --git a/tests/drive_del-test.c b/tests/qtest/drive_del-test.c
similarity index 100%
rename from tests/drive_del-test.c
rename to tests/qtest/drive_del-test.c
diff --git a/tests/ds1338-test.c b/tests/qtest/ds1338-test.c
similarity index 100%
rename from tests/ds1338-test.c
rename to tests/qtest/ds1338-test.c
diff --git a/tests/e1000-test.c b/tests/qtest/e1000-test.c
similarity index 100%
rename from tests/e1000-test.c
rename to tests/qtest/e1000-test.c
diff --git a/tests/e1000e-test.c b/tests/qtest/e1000e-test.c
similarity index 100%
rename from tests/e1000e-test.c
rename to tests/qtest/e1000e-test.c
diff --git a/tests/eepro100-test.c b/tests/qtest/eepro100-test.c
similarity index 100%
rename from tests/eepro100-test.c
rename to tests/qtest/eepro100-test.c
diff --git a/tests/endianness-test.c b/tests/qtest/endianness-test.c
similarity index 100%
rename from tests/endianness-test.c
rename to tests/qtest/endianness-test.c
diff --git a/tests/es1370-test.c b/tests/qtest/es1370-test.c
similarity index 100%
rename from tests/es1370-test.c
rename to tests/qtest/es1370-test.c
diff --git a/tests/fdc-test.c b/tests/qtest/fdc-test.c
similarity index 100%
rename from tests/fdc-test.c
rename to tests/qtest/fdc-test.c
diff --git a/tests/fw_cfg-test.c b/tests/qtest/fw_cfg-test.c
similarity index 100%
rename from tests/fw_cfg-test.c
rename to tests/qtest/fw_cfg-test.c
diff --git a/tests/hd-geo-test.c b/tests/qtest/hd-geo-test.c
similarity index 100%
rename from tests/hd-geo-test.c
rename to tests/qtest/hd-geo-test.c
diff --git a/tests/hexloader-test.c b/tests/qtest/hexloader-test.c
similarity index 100%
rename from tests/hexloader-test.c
rename to tests/qtest/hexloader-test.c
diff --git a/tests/i440fx-test.c b/tests/qtest/i440fx-test.c
similarity index 100%
rename from tests/i440fx-test.c
rename to tests/qtest/i440fx-test.c
diff --git a/tests/i82801b11-test.c b/tests/qtest/i82801b11-test.c
similarity index 100%
rename from tests/i82801b11-test.c
rename to tests/qtest/i82801b11-test.c
diff --git a/tests/ide-test.c b/tests/qtest/ide-test.c
similarity index 100%
rename from tests/ide-test.c
rename to tests/qtest/ide-test.c
diff --git a/tests/intel-hda-test.c b/tests/qtest/intel-hda-test.c
similarity index 100%
rename from tests/intel-hda-test.c
rename to tests/qtest/intel-hda-test.c
diff --git a/tests/ioh3420-test.c b/tests/qtest/ioh3420-test.c
similarity index 100%
rename from tests/ioh3420-test.c
rename to tests/qtest/ioh3420-test.c
diff --git a/tests/ipmi-bt-test.c b/tests/qtest/ipmi-bt-test.c
similarity index 100%
rename from tests/ipmi-bt-test.c
rename to tests/qtest/ipmi-bt-test.c
diff --git a/tests/ipmi-kcs-test.c b/tests/qtest/ipmi-kcs-test.c
similarity index 100%
rename from tests/ipmi-kcs-test.c
rename to tests/qtest/ipmi-kcs-test.c
diff --git a/tests/ipoctal232-test.c b/tests/qtest/ipoctal232-test.c
similarity index 100%
rename from tests/ipoctal232-test.c
rename to tests/qtest/ipoctal232-test.c
diff --git a/tests/ivshmem-test.c b/tests/qtest/ivshmem-test.c
similarity index 100%
rename from tests/ivshmem-test.c
rename to tests/qtest/ivshmem-test.c
diff --git a/tests/libqtest-single.h b/tests/qtest/libqtest-single.h
similarity index 100%
rename from tests/libqtest-single.h
rename to tests/qtest/libqtest-single.h
diff --git a/tests/libqtest.c b/tests/qtest/libqtest.c
similarity index 100%
rename from tests/libqtest.c
rename to tests/qtest/libqtest.c
diff --git a/tests/libqtest.h b/tests/qtest/libqtest.h
similarity index 100%
rename from tests/libqtest.h
rename to tests/qtest/libqtest.h
diff --git a/tests/m25p80-test.c b/tests/qtest/m25p80-test.c
similarity index 100%
rename from tests/m25p80-test.c
rename to tests/qtest/m25p80-test.c
diff --git a/tests/m48t59-test.c b/tests/qtest/m48t59-test.c
similarity index 100%
rename from tests/m48t59-test.c
rename to tests/qtest/m48t59-test.c
diff --git a/tests/machine-none-test.c b/tests/qtest/machine-none-test.c
similarity index 100%
rename from tests/machine-none-test.c
rename to tests/qtest/machine-none-test.c
diff --git a/tests/megasas-test.c b/tests/qtest/megasas-test.c
similarity index 100%
rename from tests/megasas-test.c
rename to tests/qtest/megasas-test.c
diff --git a/tests/microbit-test.c b/tests/qtest/microbit-test.c
similarity index 100%
rename from tests/microbit-test.c
rename to tests/qtest/microbit-test.c
diff --git a/tests/migration-helpers.c b/tests/qtest/migration-helpers.c
similarity index 100%
rename from tests/migration-helpers.c
rename to tests/qtest/migration-helpers.c
diff --git a/tests/migration-helpers.h b/tests/qtest/migration-helpers.h
similarity index 100%
rename from tests/migration-helpers.h
rename to tests/qtest/migration-helpers.h
diff --git a/tests/migration-test.c b/tests/qtest/migration-test.c
similarity index 100%
rename from tests/migration-test.c
rename to tests/qtest/migration-test.c
diff --git a/tests/modules-test.c b/tests/qtest/modules-test.c
similarity index 100%
rename from tests/modules-test.c
rename to tests/qtest/modules-test.c
diff --git a/tests/ne2000-test.c b/tests/qtest/ne2000-test.c
similarity index 100%
rename from tests/ne2000-test.c
rename to tests/qtest/ne2000-test.c
diff --git a/tests/numa-test.c b/tests/qtest/numa-test.c
similarity index 100%
rename from tests/numa-test.c
rename to tests/qtest/numa-test.c
diff --git a/tests/nvme-test.c b/tests/qtest/nvme-test.c
similarity index 100%
rename from tests/nvme-test.c
rename to tests/qtest/nvme-test.c
diff --git a/tests/pca9552-test.c b/tests/qtest/pca9552-test.c
similarity index 100%
rename from tests/pca9552-test.c
rename to tests/qtest/pca9552-test.c
diff --git a/tests/pci-test.c b/tests/qtest/pci-test.c
similarity index 100%
rename from tests/pci-test.c
rename to tests/qtest/pci-test.c
diff --git a/tests/pcnet-test.c b/tests/qtest/pcnet-test.c
similarity index 100%
rename from tests/pcnet-test.c
rename to tests/qtest/pcnet-test.c
diff --git a/tests/pflash-cfi02-test.c b/tests/qtest/pflash-cfi02-test.c
similarity index 100%
rename from tests/pflash-cfi02-test.c
rename to tests/qtest/pflash-cfi02-test.c
diff --git a/tests/pnv-xscom-test.c b/tests/qtest/pnv-xscom-test.c
similarity index 100%
rename from tests/pnv-xscom-test.c
rename to tests/qtest/pnv-xscom-test.c
diff --git a/tests/prom-env-test.c b/tests/qtest/prom-env-test.c
similarity index 100%
rename from tests/prom-env-test.c
rename to tests/qtest/prom-env-test.c
diff --git a/tests/pvpanic-test.c b/tests/qtest/pvpanic-test.c
similarity index 100%
rename from tests/pvpanic-test.c
rename to tests/qtest/pvpanic-test.c
diff --git a/tests/pxe-test.c b/tests/qtest/pxe-test.c
similarity index 100%
rename from tests/pxe-test.c
rename to tests/qtest/pxe-test.c
diff --git a/tests/q35-test.c b/tests/qtest/q35-test.c
similarity index 100%
rename from tests/q35-test.c
rename to tests/qtest/q35-test.c
diff --git a/tests/qmp-cmd-test.c b/tests/qtest/qmp-cmd-test.c
similarity index 100%
rename from tests/qmp-cmd-test.c
rename to tests/qtest/qmp-cmd-test.c
diff --git a/tests/qmp-test.c b/tests/qtest/qmp-test.c
similarity index 100%
rename from tests/qmp-test.c
rename to tests/qtest/qmp-test.c
diff --git a/tests/qom-test.c b/tests/qtest/qom-test.c
similarity index 100%
rename from tests/qom-test.c
rename to tests/qtest/qom-test.c
diff --git a/tests/qos-test.c b/tests/qtest/qos-test.c
similarity index 100%
rename from tests/qos-test.c
rename to tests/qtest/qos-test.c
diff --git a/tests/rtas-test.c b/tests/qtest/rtas-test.c
similarity index 100%
rename from tests/rtas-test.c
rename to tests/qtest/rtas-test.c
diff --git a/tests/rtc-test.c b/tests/qtest/rtc-test.c
similarity index 100%
rename from tests/rtc-test.c
rename to tests/qtest/rtc-test.c
diff --git a/tests/rtl8139-test.c b/tests/qtest/rtl8139-test.c
similarity index 100%
rename from tests/rtl8139-test.c
rename to tests/qtest/rtl8139-test.c
diff --git a/tests/sdhci-test.c b/tests/qtest/sdhci-test.c
similarity index 100%
rename from tests/sdhci-test.c
rename to tests/qtest/sdhci-test.c
diff --git a/tests/spapr-phb-test.c b/tests/qtest/spapr-phb-test.c
similarity index 100%
rename from tests/spapr-phb-test.c
rename to tests/qtest/spapr-phb-test.c
diff --git a/tests/tco-test.c b/tests/qtest/tco-test.c
similarity index 100%
rename from tests/tco-test.c
rename to tests/qtest/tco-test.c
diff --git a/tests/test-arm-mptimer.c b/tests/qtest/test-arm-mptimer.c
similarity index 100%
rename from tests/test-arm-mptimer.c
rename to tests/qtest/test-arm-mptimer.c
diff --git a/tests/test-filter-mirror.c b/tests/qtest/test-filter-mirror.c
similarity index 100%
rename from tests/test-filter-mirror.c
rename to tests/qtest/test-filter-mirror.c
diff --git a/tests/test-filter-redirector.c b/tests/qtest/test-filter-redirector.c
similarity index 100%
rename from tests/test-filter-redirector.c
rename to tests/qtest/test-filter-redirector.c
diff --git a/tests/test-hmp.c b/tests/qtest/test-hmp.c
similarity index 100%
rename from tests/test-hmp.c
rename to tests/qtest/test-hmp.c
diff --git a/tests/test-netfilter.c b/tests/qtest/test-netfilter.c
similarity index 100%
rename from tests/test-netfilter.c
rename to tests/qtest/test-netfilter.c
diff --git a/tests/test-x86-cpuid-compat.c b/tests/qtest/test-x86-cpuid-compat.c
similarity index 100%
rename from tests/test-x86-cpuid-compat.c
rename to tests/qtest/test-x86-cpuid-compat.c
diff --git a/tests/tmp105-test.c b/tests/qtest/tmp105-test.c
similarity index 100%
rename from tests/tmp105-test.c
rename to tests/qtest/tmp105-test.c
diff --git a/tests/tpm-crb-swtpm-test.c b/tests/qtest/tpm-crb-swtpm-test.c
similarity index 100%
rename from tests/tpm-crb-swtpm-test.c
rename to tests/qtest/tpm-crb-swtpm-test.c
diff --git a/tests/tpm-crb-test.c b/tests/qtest/tpm-crb-test.c
similarity index 100%
rename from tests/tpm-crb-test.c
rename to tests/qtest/tpm-crb-test.c
diff --git a/tests/tpm-emu.c b/tests/qtest/tpm-emu.c
similarity index 100%
rename from tests/tpm-emu.c
rename to tests/qtest/tpm-emu.c
diff --git a/tests/tpm-emu.h b/tests/qtest/tpm-emu.h
similarity index 100%
rename from tests/tpm-emu.h
rename to tests/qtest/tpm-emu.h
diff --git a/tests/tpm-tests.c b/tests/qtest/tpm-tests.c
similarity index 100%
rename from tests/tpm-tests.c
rename to tests/qtest/tpm-tests.c
diff --git a/tests/tpm-tests.h b/tests/qtest/tpm-tests.h
similarity index 100%
rename from tests/tpm-tests.h
rename to tests/qtest/tpm-tests.h
diff --git a/tests/tpm-tis-swtpm-test.c b/tests/qtest/tpm-tis-swtpm-test.c
similarity index 100%
rename from tests/tpm-tis-swtpm-test.c
rename to tests/qtest/tpm-tis-swtpm-test.c
diff --git a/tests/tpm-tis-test.c b/tests/qtest/tpm-tis-test.c
similarity index 100%
rename from tests/tpm-tis-test.c
rename to tests/qtest/tpm-tis-test.c
diff --git a/tests/tpm-util.c b/tests/qtest/tpm-util.c
similarity index 100%
rename from tests/tpm-util.c
rename to tests/qtest/tpm-util.c
diff --git a/tests/tpm-util.h b/tests/qtest/tpm-util.h
similarity index 100%
rename from tests/tpm-util.h
rename to tests/qtest/tpm-util.h
diff --git a/tests/usb-hcd-ehci-test.c b/tests/qtest/usb-hcd-ehci-test.c
similarity index 100%
rename from tests/usb-hcd-ehci-test.c
rename to tests/qtest/usb-hcd-ehci-test.c
diff --git a/tests/usb-hcd-ohci-test.c b/tests/qtest/usb-hcd-ohci-test.c
similarity index 100%
rename from tests/usb-hcd-ohci-test.c
rename to tests/qtest/usb-hcd-ohci-test.c
diff --git a/tests/usb-hcd-uhci-test.c b/tests/qtest/usb-hcd-uhci-test.c
similarity index 100%
rename from tests/usb-hcd-uhci-test.c
rename to tests/qtest/usb-hcd-uhci-test.c
diff --git a/tests/usb-hcd-xhci-test.c b/tests/qtest/usb-hcd-xhci-test.c
similarity index 100%
rename from tests/usb-hcd-xhci-test.c
rename to tests/qtest/usb-hcd-xhci-test.c
diff --git a/tests/vhost-user-test.c b/tests/qtest/vhost-user-test.c
similarity index 100%
rename from tests/vhost-user-test.c
rename to tests/qtest/vhost-user-test.c
diff --git a/tests/virtio-9p-test.c b/tests/qtest/virtio-9p-test.c
similarity index 100%
rename from tests/virtio-9p-test.c
rename to tests/qtest/virtio-9p-test.c
diff --git a/tests/virtio-blk-test.c b/tests/qtest/virtio-blk-test.c
similarity index 100%
rename from tests/virtio-blk-test.c
rename to tests/qtest/virtio-blk-test.c
diff --git a/tests/virtio-ccw-test.c b/tests/qtest/virtio-ccw-test.c
similarity index 100%
rename from tests/virtio-ccw-test.c
rename to tests/qtest/virtio-ccw-test.c
diff --git a/tests/virtio-net-test.c b/tests/qtest/virtio-net-test.c
similarity index 100%
rename from tests/virtio-net-test.c
rename to tests/qtest/virtio-net-test.c
diff --git a/tests/virtio-rng-test.c b/tests/qtest/virtio-rng-test.c
similarity index 100%
rename from tests/virtio-rng-test.c
rename to tests/qtest/virtio-rng-test.c
diff --git a/tests/virtio-scsi-test.c b/tests/qtest/virtio-scsi-test.c
similarity index 100%
rename from tests/virtio-scsi-test.c
rename to tests/qtest/virtio-scsi-test.c
diff --git a/tests/virtio-serial-test.c b/tests/qtest/virtio-serial-test.c
similarity index 100%
rename from tests/virtio-serial-test.c
rename to tests/qtest/virtio-serial-test.c
diff --git a/tests/virtio-test.c b/tests/qtest/virtio-test.c
similarity index 100%
rename from tests/virtio-test.c
rename to tests/qtest/virtio-test.c
diff --git a/tests/vmgenid-test.c b/tests/qtest/vmgenid-test.c
similarity index 100%
rename from tests/vmgenid-test.c
rename to tests/qtest/vmgenid-test.c
diff --git a/tests/vmxnet3-test.c b/tests/qtest/vmxnet3-test.c
similarity index 100%
rename from tests/vmxnet3-test.c
rename to tests/qtest/vmxnet3-test.c
diff --git a/tests/wdt_ib700-test.c b/tests/qtest/wdt_ib700-test.c
similarity index 100%
rename from tests/wdt_ib700-test.c
rename to tests/qtest/wdt_ib700-test.c
