qemu-patch-raspberry4/tests
Markus Armbruster 297a3646c2 qapi: Replace uncommon use of the error API by the common one
We commonly use the error API like this:

    err = NULL;
    foo(..., &err);
    if (err) {
        goto out;
    }
    bar(..., &err);

Every error source is checked separately.  The second function is only
called when the first one succeeds.  Both functions are free to pass
their argument to error_set().  Because error_set() asserts no error
has been set, this effectively means they must not be called with an
error set.

The qapi-generated code uses the error API differently:

    // *errp was initialized to NULL somewhere up the call chain
    frob(..., errp);
    gnat(..., errp);

Errors accumulate in *errp: first error wins, subsequent errors get
dropped.  To make this work, the second function does nothing when
called with an error set.  Requires non-null errp, or else the second
function can't see the first one fail.

This usage has also bled into visitor tests, and two device model
object property getters rtc_get_date() and balloon_stats_get_all().

With the "accumulate" technique, you need fewer error checks in
callers, and buy that with an error check in every callee.  Can be
nice.

However, mixing the two techniques is confusing.  You can't use the
"accumulate" technique with functions designed for the "check
separately" technique.  You can use the "check separately" technique
with functions designed for the "accumulate" technique, but then
error_set() can't catch you setting an error more than once.

Standardize on the "check separately" technique for now, because it's
overwhelmingly prevalent.

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
2014-05-15 14:00:46 -04:00
..
acpi-test-data acpi-test: update expected files 2014-04-14 15:13:27 +03:00
libqos tests/libqos/pci-pc: Avoid shifting left into sign bit 2014-03-27 19:22:49 +04:00
multiboot tests: Multiboot mmap test case 2013-10-28 17:34:42 +01:00
qapi-schema qapi: Add a primitive to include other files from a QAPI schema file 2014-05-08 14:19:58 -04:00
qemu-iotests Revert "iotests: Use configured python" 2014-05-15 13:41:19 +01:00
tcg tests/tcg: Fix compilation of test_path 2014-05-07 21:00:43 +04:00
.gitignore tests/.gitignore: Ignore test-rfifolock 2014-04-27 13:04:18 +04:00
ac97-test.c tests: Add ac97 qtest 2014-05-05 20:58:33 +02:00
acpi-test.c tests/acpi-test: do not fail if iasl is broken 2014-03-24 12:37:36 +02:00
blockdev-test.c blockdev-test: add test case for drive_add duplicate IDs 2013-11-07 13:58:58 +01:00
boot-order-test.c qtest: Use -display none by default 2013-11-19 10:28:14 +01:00
check-block.sh Add 'make check-block' 2012-03-12 15:14:07 +01:00
check-qdict.c check-qdict: Test termination of qdict_array_split() 2014-02-21 22:18:26 +01:00
check-qfloat.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
check-qint.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
check-qjson.c qjson: to_json() case QTYPE_QSTRING is buggy, rewrite 2013-04-13 19:40:25 +00:00
check-qlist.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
check-qom-interface.c tests: Test QOM interface casting 2013-12-24 17:27:17 +01:00
check-qstring.c qapi: move include files to include/qobject/ 2012-12-19 08:31:31 +01:00
display-vga-test.c add secondary-vga to display-vga test 2014-04-28 11:03:39 +02:00
e1000-test.c tests: Add e1000 qtest 2014-02-14 16:22:33 +01:00
eepro100-test.c tests: Add eepro100 qtest 2014-02-14 16:22:33 +01:00
endianness-test.c qtest: Include system headers before user headers 2014-02-17 23:10:02 +01:00
es1370-test.c tests: Add es1370 qtest 2014-05-05 20:58:33 +02:00
fdc-test.c qtest: Fix the bug about disable vnc causes "make check" fail 2014-01-22 12:07:16 +01:00
fw_cfg-test.c qtest: Include system headers before user headers 2014-02-17 23:10:02 +01:00
hd-geo-test.c qtest: Use -display none by default 2013-11-19 10:28:14 +01:00
i440fx-test.c QOM infrastructure fixes and device conversions 2014-02-20 13:05:48 +00:00
i82801b11-test.c tests: Add i82801b11 qtest 2014-03-31 22:36:17 +02:00
ide-test.c qtest: Fix the bug about disable vnc causes "make check" fail 2014-01-22 12:07:16 +01:00
intel-hda-test.c tests: Add intel-hda qtests 2014-05-05 20:58:33 +02:00
ioh3420-test.c tests: Add ioh3420 qtest 2014-05-05 20:58:33 +02:00
ipoctal232-test.c tests: Add ipoctal232 qtest 2014-02-14 21:07:13 +01:00
libqtest.c qtest: Be paranoid about accept() addrlen argument 2014-05-05 20:58:33 +02:00
libqtest.h qtest: Factor out qtest_qmp_receive() 2014-03-31 22:36:16 +02:00
m48t59-test.c qtest: Include system headers before user headers 2014-02-17 23:10:02 +01:00
Makefile qapi: Add a primitive to include other files from a QAPI schema file 2014-05-08 14:19:58 -04:00
ne2000-test.c tests: Add ne2000 qtest 2014-02-14 20:50:19 +01:00
nvme-test.c tests: Add nvme qtest 2014-03-31 22:35:03 +02:00
pcnet-test.c tests: Add pcnet qtest 2014-02-14 16:22:33 +01:00
pvpanic-test.c pvpanic-test: Assert pause event 2014-03-31 22:36:17 +02:00
qdev-monitor-test.c qdev-monitor-test: Don't test human-readable error message 2014-03-12 20:13:02 +01:00
qemu-iotests-quick.sh qemu-iotests: add more tests to the "quick" group 2014-02-28 18:59:06 +01:00
qom-test.c qom-test: Test QOM properties 2014-03-13 01:21:45 +01:00
rtc-test.c qtest: Include system headers before user headers 2014-02-17 23:10:02 +01:00
rtl8139-test.c tests: Add rtl8139 qtest 2014-02-14 16:22:33 +01:00
spapr-phb-test.c tests: Add spapr-pci-host-bridge qtest 2014-03-13 01:21:57 +01:00
test-aio.c tests: Remove unsupported tests for MinGW 2014-03-31 22:35:02 +02:00
test-bitops.c tests: fix 64-bit int literals for 32-bit hosts 2013-11-05 19:59:43 -08:00
test-coroutine.c Test coroutine execution order 2013-11-28 10:30:52 +01:00
test-cutils.c cutils: unsigned int parsing functions 2013-02-04 14:38:33 -06:00
test-hbitmap.c hbitmap: add assertion on hbitmap_iter_init 2013-01-25 18:18:35 +01:00
test-int128.c tests/test-int128: Don't use __noclone__ attribute on clang 2014-03-02 17:20:37 +04:00
test-iov.c test-iov: add iov_discard_front/back() testcases 2013-01-02 15:58:09 +01:00
test-mul64.c tests: Add unit tests for mulu64 and muls64 2013-02-17 14:28:58 +00:00
test-opts-visitor.c tests: fix 64-bit int literals for 32-bit hosts 2013-11-05 19:59:43 -08:00
test-qdev-global-props.c qdev: Set globals in instance_post_init function 2013-08-16 18:44:33 +02:00
test-qmp-commands.c tests: test-qmp-commands: Fix double free 2014-03-11 09:07:42 -04:00
test-qmp-input-strict.c qapi: Replace uncommon use of the error API by the common one 2014-05-15 14:00:46 -04:00
test-qmp-input-visitor.c qapi: Replace uncommon use of the error API by the common one 2014-05-15 14:00:46 -04:00
test-qmp-output-visitor.c qapi: Replace uncommon use of the error API by the common one 2014-05-15 14:00:46 -04:00
test-rfifolock.c rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
test-string-input-visitor.c qmp hmp: Consistently name Error * objects err, and not errp 2014-05-08 14:20:00 -04:00
test-string-output-visitor.c qmp hmp: Consistently name Error * objects err, and not errp 2014-05-08 14:20:00 -04:00
test-thread-pool.c aio / timers: Add QEMUTimerListGroup to AioContext 2013-08-22 19:10:27 +02:00
test-throttle.c misc: New spelling fixes in comments 2013-10-26 13:01:57 +04:00
test-visitor-serialization.c qapi: Replace uncommon use of the error API by the common one 2014-05-15 14:00:46 -04:00
test-vmstate.c savevm: Remove all the unneeded version_minimum_id_old (rest) 2014-05-14 15:24:51 +02:00
test-x86-cpuid.c target-i386: Topology & APIC ID utility functions 2013-01-27 14:34:27 +01:00
test-xbzrle.c Add XBZRLE testing 2013-02-01 08:32:20 +01:00
tmp105-test.c tmp105-test: Test QOM property and precision 2014-03-31 23:03:14 +02:00
tpci200-test.c tests: Add tpci200 qtest 2014-02-14 21:02:27 +01:00
usb-hcd-ehci-test.c tests: Add EHCI qtest 2014-05-05 20:58:33 +02:00
virtio-9p-test.c tests: Add virtio-9p qtest 2014-03-31 22:35:50 +02:00
virtio-balloon-test.c tests: Add virtio-balloon qtest 2014-03-13 01:21:56 +01:00
virtio-blk-test.c tests: Add virtio-blk qtest 2014-03-13 01:21:56 +01:00
virtio-console-test.c virtio-console-test: Test virtserialport as well 2014-03-13 21:12:07 +01:00
virtio-net-test.c tests: Add virtio-net qtest 2014-02-14 21:01:03 +01:00
virtio-rng-test.c tests: Add virtio-rng qtest 2014-03-13 01:21:56 +01:00
virtio-scsi-test.c tests: Add virtio-scsi qtest 2014-03-13 01:21:56 +01:00
virtio-serial-test.c tests: Add virtio-serial qtest 2014-03-13 01:21:57 +01:00
vmxnet3-test.c tests: Add vmxnet3 qtest 2014-02-14 16:22:33 +01:00