qemu-e2k/tests
Paolo Bonzini e70372fcaf lockable: add QemuLockable
QemuLockable is a polymorphic lock type that takes an object and
knows which function to use for locking and unlocking.  The
implementation could use C11 _Generic, but since the support is
not very widespread I am instead using __builtin_choose_expr and
__builtin_types_compatible_p, which are already used by
include/qemu/atomic.h.

QemuLockable can be used to implement lock guards, or to pass around
a lock in such a way that a function can release it and re-acquire it.
The next patch will do this for CoQueue.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-Id: <20180203153935.8056-3-pbonzini@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
2018-02-08 09:22:03 +08:00
..
acpi-test-data ACPI/unit-test: Add a testcase for RAM allocation in numa node 2018-01-18 21:52:38 +02:00
data test-qga: add test for guest-get-osinfo 2017-07-18 05:49:01 -05:00
docker docker: change Fedora base image to fedora:27 2018-02-08 09:21:34 +08:00
guest-debug
image-fuzzer
keys tests: Add a test key pair 2017-09-22 10:46:25 +08:00
libqos libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
migration scripts: Remove debug parameter from QEMUMachine 2017-10-11 15:15:17 -03:00
multiboot tests/multiboot: Fix whitespace failure 2017-08-11 13:23:19 +02:00
qapi-schema qapi: use items()/values() intead of iteritems()/itervalues() 2018-02-05 19:53:54 -02:00
qemu-iotests iotests: Make 200 run on tmpfs 2018-01-31 22:37:00 -05:00
rocker tests: Avoid non-portable 'echo -ARG' 2017-07-11 17:45:00 +02:00
tcg maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
vm basevm: Call logging.basicConfig() 2017-10-11 15:15:17 -03:00
vmstate-static-checker-data
.gitignore tests/.gitignore: Add test-bdrv-drain 2018-01-23 12:33:07 +01:00
ac97-test.c
acpi-utils.c
acpi-utils.h maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
ahci-test.c blockdev: Mark BD-{remove,insert}-medium stable 2018-01-23 12:34:42 +01:00
atomic_add-bench.c
benchmark-crypto-cipher.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
benchmark-crypto-hash.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
benchmark-crypto-hmac.c tests: fix incorrect size_t format in benchmark-crypto 2017-09-04 10:45:19 +01:00
bios-tables-test.c tests: acpi: add comments to fetch_rsdt_referenced_tables/data->tables usage 2018-01-18 21:52:39 +02:00
boot-order-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
boot-sector.c tests/boot-sector: Increase timeout to 600 seconds 2017-09-26 09:11:23 +03:00
boot-sector.h
boot-serial-test.c tests: Enable boot-serial-test for hppa 2018-02-04 14:11:07 -08:00
check-block.sh
check-qdict.c tests/qdict: check more get_try_int() cases 2017-06-20 14:31:33 +02:00
check-qjson.c qlit: make qlit_equal_qobject return a bool 2017-09-04 13:09:11 +02:00
check-qlist.c tests: remove /{qnum, qlist, dict}/destroy test 2017-06-20 14:31:31 +02:00
check-qlit.c qlit: Tighten QLit list vs QList comparison 2017-09-04 13:09:12 +02:00
check-qnull.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
check-qnum.c qnum: add uint type 2017-06-20 14:31:31 +02:00
check-qobject.c tests: fix check-qobject leak 2018-01-16 14:54:49 +01:00
check-qom-interface.c
check-qom-proplist.c qapi: drop the sentinel in enum array 2017-09-04 13:09:13 +02:00
check-qstring.c tests: remove /{qnum, qlist, dict}/destroy test 2017-06-20 14:31:31 +02:00
cpu-plug-test.c tests/cpu-plug-test: Test CPU hot-plugging on s390x 2018-01-22 08:39:05 +01:00
crypto-tls-x509-helpers.c crypto: fix test cert generation to not use SHA1 algorithm 2017-09-04 10:45:19 +01:00
crypto-tls-x509-helpers.h
device-introspect-test.c qmp: Include parent type on 'qom-list-types' output 2017-07-17 15:41:30 -03:00
display-vga-test.c
drive_del-test.c tests: Enable the drive_del test also on s390x 2017-09-19 18:21:32 +02:00
ds1338-test.c
e1000-test.c
e1000e-test.c
eepro100-test.c
endianness-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
es1370-test.c
fdc-test.c fdc-test: Avoid deprecated 'change' command 2017-05-09 09:14:40 +02:00
fw_cfg-test.c tests: use g_new() family of functions 2017-10-16 13:29:49 +02:00
hd-geo-test.c
i440fx-test.c
i82801b11-test.c
ide-test.c IDE: test flush on empty CDROM 2017-08-10 14:33:43 +01:00
intel-hda-test.c
io-channel-helpers.c io: add new qio_channel_{readv, writev, read, write}_all functions 2017-09-05 13:21:58 +01:00
io-channel-helpers.h
ioh3420-test.c
iothread.c
iothread.h
ipmi-bt-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ipmi-kcs-test.c
ipoctal232-test.c
ivshmem-test.c
libqtest.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
libqtest.h libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
m25p80-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
m48t59-test.c
Makefile.include Python queue, 2018-02-05 2018-02-06 19:28:08 +00:00
megasas-test.c megasas: always store SCSIRequest* into MegasasCmd 2017-06-15 11:04:05 +02:00
migration-test.c tests: Adjust sleeps for migration test 2018-02-06 14:53:02 +00:00
ne2000-test.c
numa-test.c numa-test: Use hmp() 2017-09-15 09:05:19 +02:00
nvme-test.c tests: Use null-co:// instead of /dev/null as the dummy image 2017-05-11 11:08:40 +02:00
pcnet-test.c
pkix_asn1_tab.c
pnv-xscom-test.c ppc/pnv: fix XSCOM core addressing on POWER9 2018-01-17 09:35:24 +11:00
prom-env-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ptimer-test-stubs.c ptimer-test: do not link to libqemustub.a/libqemuutil.a 2017-09-19 16:19:39 +02:00
ptimer-test.c
ptimer-test.h
pvpanic-test.c
pxe-test.c tests/pxe-test: Add some extra tests 2017-12-21 02:16:48 +02:00
q35-test.c tests/q35-test: add TSEG size checks 2017-06-16 18:44:55 +03:00
qemu-iotests-quick.sh
qht-bench.c tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK 2017-10-24 13:53:41 -07:00
qmp-test.c tests: fix qmp-test leak 2018-01-16 14:54:50 +01:00
qom-test.c libqtest: Add a generic function to run a callback function for every machine 2017-04-26 14:42:31 +01:00
rcutorture.c
rtas-test.c
rtc-test.c rtc-test: introduce more update tests 2017-08-01 17:27:33 +02:00
rtl8139-test.c
spapr-phb-test.c
tco-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-aio-multithread.c misc: remove headers implicitly included 2017-12-18 17:07:02 +03:00
test-aio.c
test-arm-mptimer.c
test-base64.c
test-bdrv-drain.c test-bdrv-drain: Test graph changes in drained section 2017-12-22 15:05:32 +01:00
test-bitcnt.c
test-bitops.c
test-blockjob-txn.c blockjob: remove clock argument from block_job_sleep_ns 2017-11-29 15:11:02 +01:00
test-blockjob.c blockjob: introduce block_job_early_fail 2017-05-24 16:38:51 -04:00
test-bufferiszero.c
test-char.c test: add some chardev mux event tests 2017-12-21 09:30:32 +01:00
test-clone-visitor.c misc: remove headers implicitly included 2017-12-18 17:07:02 +03:00
test-coroutine.c lockable: add QemuLockable 2018-02-08 09:22:03 +08:00
test-crypto-afsplit.c
test-crypto-block.c tests: Run the luks tests in test-crypto-block only if encryption is available 2017-11-08 11:03:46 +00:00
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-hmac.c
test-crypto-ivgen.c
test-crypto-pbkdf.c
test-crypto-secret.c
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-crypto-xts.c
test-cutils.c
test-filter-mirror.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-filter-redirector.c tests/test-filter-redirector: move close() 2018-02-07 14:09:25 +01:00
test-hbitmap.c hbitmap: add next_zero function 2017-12-18 10:54:13 -05:00
test-hmp.c tests: test-hmp: print command execution result 2017-12-14 11:09:42 +00:00
test-int128.c
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c
test-io-channel-socket.c sockets: Limit SocketAddressLegacy to external interfaces 2017-05-09 09:14:40 +02:00
test-io-channel-tls.c io: fix check for handshake completion in TLS test 2017-09-05 13:21:58 +01:00
test-io-task.c
test-iov.c tests: Use real size for iov tests 2017-09-05 22:34:40 +02:00
test-keyval.c tests: Remove test cases for alternates of 'number' and 'int' 2017-06-19 14:56:29 +02:00
test-logging.c
test-mul64.c
test-netfilter.c tests: Add network filter tests to the check-qtest-s390x list 2017-08-30 18:23:25 +02:00
test-opts-visitor.c qapi: Fix QemuOpts visitor regression on unvisited input 2017-03-22 19:24:34 +01:00
test-qapi-util.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
test-qdev-global-props.c test-qdev-global-props: Test global property ordering 2017-07-17 15:41:30 -03:00
test-qdist.c
test-qemu-opts.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
test-qga.c test-qga: Kill broken and dead QGA_TEST_SIDE_EFFECTING code 2017-09-15 09:05:18 +02:00
test-qht-par.c
test-qht.c
test-qmp-commands.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
test-qmp-event.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
test-qobject-input-visitor.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
test-qobject-output-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-rcu-list.c
test-replication.c tests: Disable image lock in test-replication 2017-05-11 11:08:41 +02:00
test-shift128.c
test-string-input-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-string-output-visitor.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
test-thread-pool.c
test-throttle.c block: convert ThrottleGroup to object with QOM 2017-09-05 18:12:21 +02:00
test-timed-average.c
test-uuid.c util: add is_equal to UUID API 2017-12-20 22:01:24 +08:00
test-visitor-serialization.c
test-vmstate.c migration: Route more error paths 2017-09-27 11:44:18 +01:00
test-write-threshold.c
test-x86-cpuid-compat.c qapi: merge QInt and QFloat in QNum 2017-06-20 14:31:31 +02:00
test-x86-cpuid.c
test-xbzrle.c migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
tmp105-test.c
tpci200-test.c
tpm-crb-test.c tpm: add CRB device 2018-01-29 14:22:50 -05:00
usb-hcd-ehci-test.c
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c tests: Introduce generic device hot-plug/hot-unplug functions 2017-09-15 09:05:18 +02:00
usb-hcd-xhci-test.c tests: Introduce generic device hot-plug/hot-unplug functions 2017-09-15 09:05:18 +02:00
vhost-user-bridge.c tests: Avoid 'do/while(false); ' in vhost-user-bridge 2018-01-16 14:54:52 +01:00
vhost-user-test.c tests: use memfd in vhost-user-test 2018-02-07 14:09:25 +01:00
virtio-9p-test.c tests/virtio-9p: explicitly handle potential integer overflows 2018-02-02 11:15:34 +01:00
virtio-balloon-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-blk-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-console-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-net-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-rng-test.c
virtio-scsi-test.c libqos/virtio: return length written into used descriptor 2018-02-02 11:11:55 +01:00
virtio-serial-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
vmgenid-test.c misc: remove headers implicitly included 2017-12-18 17:07:02 +03:00
vmxnet3-test.c
wdt_ib700-test.c