qemu/tests/unit
Daniel P. Berrangé 97f7bf113e crypto: propagate errors from TLS session I/O callbacks
GNUTLS doesn't know how to perform I/O on anything other than plain
FDs, so the TLS session provides it with some I/O callbacks. The
GNUTLS API design requires these callbacks to return a unix errno
value, which means we're currently loosing the useful QEMU "Error"
object.

This changes the I/O callbacks in QEMU to stash the "Error" object
in the QCryptoTLSSession class, and fetch it when seeing an I/O
error returned from GNUTLS, thus preserving useful error messages.

Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2024-07-24 10:39:10 +01:00
..
check-block-qdict.c tests: unit: add NULL-pointer check 2022-09-18 09:17:41 +02:00
check-qdict.c
check-qjson.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
check-qlist.c
check-qlit.c
check-qnull.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
check-qnum.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
check-qobject.c tests: remove block/qdict checks from check-qobject.c 2022-04-21 17:03:51 +04:00
check-qom-interface.c
check-qom-proplist.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
check-qstring.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
crypto-tls-psk-helpers.c crypto: Remove 'crypto-tls-x509-helpers.h' from crypto-tls-psk-helpers.c 2024-07-24 10:39:10 +01:00
crypto-tls-psk-helpers.h tests: add migration tests of TLS with PSK credentials 2022-05-16 11:46:04 +01:00
crypto-tls-x509-helpers.c crypto: Restrict pkix_asn1_tab[] to crypto-tls-x509-helpers.c 2024-07-24 10:39:10 +01:00
crypto-tls-x509-helpers.h crypto: Restrict pkix_asn1_tab[] to crypto-tls-x509-helpers.c 2024-07-24 10:39:10 +01:00
io-channel-helpers.c tests/channel-helper: set blocking in main thread 2022-10-12 19:22:01 +04:00
io-channel-helpers.h
iothread.c async: the main AioContext is only "current" if under the BQL 2021-06-18 10:59:52 -05:00
iothread.h
meson.build crypto: Restrict pkix_asn1_tab[] to crypto-tls-x509-helpers.c 2024-07-24 10:39:10 +01:00
pkix_asn1_tab.c.inc crypto: Restrict pkix_asn1_tab[] to crypto-tls-x509-helpers.c 2024-07-24 10:39:10 +01:00
ptimer-test-stubs.c async: Add an optional reentrancy guard to the BH API 2023-04-28 11:31:07 +02:00
ptimer-test.c tests/unit: Replace g_memdup() by g_memdup2() 2022-07-18 20:24:36 +02:00
ptimer-test.h
rcutorture.c Updated the FSF address to <https://www.gnu.org/licenses/> 2023-02-27 09:15:39 +01:00
socket-helpers.c tests/unit/socket-helpers: Don't close(-1) 2024-03-25 10:41:00 +00:00
socket-helpers.h tests/unit: Update test-io-channel-socket.c for Windows 2022-09-02 15:54:47 +04:00
test-aio-multithread.c atomics: eliminate mb_read/mb_set 2023-06-06 09:42:14 +02:00
test-aio.c tests: remove aio_context_acquire() tests 2023-12-21 22:49:27 +01:00
test-authz-list.c
test-authz-listfile.c
test-authz-pam.c
test-authz-simple.c
test-base64.c
test-bdrv-drain.c commit: Allow users to request only format driver names in backing file format 2024-01-26 11:16:58 +01:00
test-bdrv-graph-mod.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
test-bitcnt.c
test-bitmap.c
test-bitops.c
test-block-backend.c
test-block-iothread.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
test-blockjob-txn.c jobs: use job locks also in the unit tests 2022-10-07 12:11:41 +02:00
test-blockjob.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
test-bufferiszero.c
test-char.c tests/unit/test-char: Fix qemu_socket(), make_udp_socket() check 2024-02-14 07:45:08 +01:00
test-clone-visitor.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
test-coroutine.c tests/coroutine: Clean up global variable shadowing 2023-10-27 09:39:08 +02:00
test-crypto-afsplit.c
test-crypto-akcipher.c tests/crypto: Add test suite for RSA keys 2022-05-26 11:41:56 +01:00
test-crypto-block.c crypto/block: drop qcrypto_block_open() n_threads argument 2024-06-10 11:05:43 +02:00
test-crypto-cipher.c crypto: report which ciphers are being skipped during tests 2024-03-19 20:17:12 +00:00
test-crypto-der.c crypto: Support DER encodings 2022-11-02 06:56:32 -04:00
test-crypto-hash.c crypto: use &error_fatal in crypto tests 2021-07-14 14:15:52 +01:00
test-crypto-hmac.c crypto: use &error_fatal in crypto tests 2021-07-14 14:15:52 +01:00
test-crypto-ivgen.c crypto: skip essiv ivgen tests if AES+ECB isn't available 2021-07-14 14:15:52 +01:00
test-crypto-pbkdf.c crypto: remove obsolete crypto test condition 2021-07-14 14:15:52 +01:00
test-crypto-secret.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
test-crypto-tlscredsx509.c tests: Use g_mkdir_with_parents() 2022-08-25 15:24:09 +02:00
test-crypto-tlssession.c crypto: propagate errors from TLS session I/O callbacks 2024-07-24 10:39:10 +01:00
test-crypto-xts.c
test-cutils.c cutils: Improve qemu_strtosz handling of fractions 2023-06-02 12:29:27 -05:00
test-div128.c host-utils: add unit tests for divu128/divs128 2021-10-27 17:10:00 -07:00
test-error-report.c error: add global &error_warn destination 2023-03-13 15:23:37 +04:00
test-forward-visitor.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
test-hbitmap.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
test-image-locking.c tests/unit/test-image-locking: Fix handling of temporary files 2022-10-12 12:48:53 +02:00
test-int128.c qemu/int128: add int128_urshift 2022-04-20 18:00:30 -03:00
test-interval-tree.c util: Add interval-tree.c 2022-12-20 17:09:41 -08:00
test-io-channel-buffer.c
test-io-channel-command.c tests: fix path separator, use g_build_filename() 2023-03-13 15:39:31 +04:00
test-io-channel-file.c tests: replace pipe() with g_unix_open_pipe(CLOEXEC) 2022-05-03 15:46:08 +04:00
test-io-channel-null.c io: add a QIOChannelNull equivalent to /dev/null 2022-06-22 18:11:21 +01:00
test-io-channel-socket.c io: Add support for MSG_PEEK for socket channel 2023-02-06 19:22:56 +01:00
test-io-channel-tls.c Call qemu_socketpair() instead of socketpair() when possible 2023-01-16 17:42:17 +01:00
test-io-task.c tests/unit/test-io-task: Rename "qemu:dummy" to avoid colon in the name 2023-12-20 10:29:23 +01:00
test-iov.c tests/unit/test-iov: Fix timeout problem on NetBSD and OpenBSD 2024-01-23 15:25:45 +01:00
test-keyval.c include: add qemu/keyval.h 2022-04-21 17:03:51 +04:00
test-logging.c util/log: Remove qemu_log_close 2022-04-20 10:51:11 -07:00
test-mul64.c
test-nested-aio-poll.c tests/unit: Remove debug statements in test-nested-aio-poll.c 2024-04-25 15:15:25 +02:00
test-opts-visitor.c
test-qapi-util.c
test-qdev-global-props.c
test-qdist.c
test-qemu-opts.c qemu-option: remove now-dead code 2021-07-06 08:33:51 +02:00
test-qga.c tests/unit/test-qga: do not qualify executable paths 2024-01-30 12:11:35 +02:00
test-qgraph.c tests: Remove uses of deprecated raspi2/raspi3 machine names 2021-09-01 11:08:15 +01:00
test-qht.c
test-qmp-cmds.c tests: add G_GNUC_PRINTF for various functions 2023-01-11 10:44:34 +01:00
test-qmp-event.c tests/unit/test-qmp-event: Replace fixture by global variables 2023-12-20 10:29:23 +01:00
test-qobject-input-visitor.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
test-qobject-output-visitor.c qapi: allow unions to contain further unions 2023-04-26 07:52:45 +02:00
test-qtree.c util: import GTree as QTree 2023-03-28 15:23:10 -07:00
test-rcu-list.c replace TABs with spaces 2023-03-20 12:43:50 +01:00
test-rcu-simpleq.c
test-rcu-slist.c
test-rcu-tailq.c
test-replication.c block: remove AioContext locking 2023-12-21 22:49:27 +01:00
test-resv-mem.c test-resv-mem: Fix CID 1523911 2023-11-13 11:35:47 +01:00
test-seccomp.c tests/unit/test-seccomp: Remove mentions of softmmu in test names 2023-11-07 12:13:27 +01:00
test-shift128.c
test-smp-parse.c tests/unit/test-smp-parse: Test the full 8-levels topology hierarchy 2024-06-12 12:10:57 +02:00
test-string-input-visitor.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
test-string-output-visitor.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
test-thread-pool.c tests: mark more coroutine_fns 2023-04-25 13:17:28 +02:00
test-throttle.c tests/unit/test-throttle: Avoid unintended integer division 2024-03-25 14:17:06 +00:00
test-timed-average.c
test-util-filemonitor.c test-util-filemonitor: Adapt to the FreeBSD inotify rename semantics 2024-02-06 10:27:50 +01:00
test-util-sockets.c tests/unit/test-util-sockets: Remove temporary file after test 2024-03-01 08:27:33 +01:00
test-uuid.c util/uuid: Add UUID_STR_LEN definition 2023-11-03 09:20:31 +01:00
test-virtio-dmabuf.c hw/display: introduce virtio-dmabuf 2023-10-04 18:15:06 -04:00
test-visitor-serialization.c qapi tests: Elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
test-vmstate.c migration: remove migration.h references 2024-03-11 16:28:59 -04:00
test-write-threshold.c write-threshold: deal with includes 2021-05-14 16:14:10 +02:00
test-x86-topo.c tests: Add test case of APIC ID for module level parsing 2024-05-22 19:43:29 +02:00
test-xbzrle.c migration/xbzrle: Use i386 host/cpuinfo.h 2023-05-23 16:51:18 -07:00
test-xs-node.c tests/: spelling fixes 2023-09-08 13:08:52 +03:00
test-yank.c qapi: Convert simple union SocketAddressLegacy to flat one 2021-09-27 08:23:25 +02:00