[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/20] nbd: Add some error case testing to iotests 22
From: |
Eric Blake |
Subject: |
[Qemu-devel] [PULL 13/20] nbd: Add some error case testing to iotests 223 |
Date: |
Mon, 14 Jan 2019 10:25:58 -0600 |
Testing success paths is important, but it's also nice to highlight
expected failure handling, to show that we don't crash, and so that
upcoming tests that change behavior can demonstrate the resulting
effects on error paths.
Add the following errors:
Attempting to export without a running server
Attempting to start a second server
Attempting to export a bad node name
Attempting to export a name that is already exported
Attempting to export an enabled bitmap
Attempting to remove an already removed export
Attempting to quit server a second time
All of these properly complain except for a second server-stop,
which will be fixed next.
Signed-off-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Vladimir Sementsov-Ogievskiy <address@hidden>
---
tests/qemu-iotests/223 | 19 +++++++++++++++++--
tests/qemu-iotests/223.out | 7 +++++++
2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223
index 5513dc62159..61b46a2f066 100755
--- a/tests/qemu-iotests/223
+++ b/tests/qemu-iotests/223
@@ -107,6 +107,7 @@ echo
_launch_qemu 2> >(_filter_nbd)
+# Intentionally provoke some errors as well, to check error handling
silent=
_send_qemu_cmd $QEMU_HANDLE '{"execute":"qmp_capabilities"}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"blockdev-add",
@@ -114,17 +115,28 @@ _send_qemu_cmd $QEMU_HANDLE '{"execute":"blockdev-add",
"file":{"driver":"file", "filename":"'"$TEST_IMG"'"}}}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"block-dirty-bitmap-disable",
"arguments":{"node":"n", "name":"b"}}' "return"
-_send_qemu_cmd $QEMU_HANDLE '{"execute":"block-dirty-bitmap-disable",
- "arguments":{"node":"n", "name":"b2"}}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
+ "arguments":{"device":"n"}}' "error" # Attempt add without server
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
"arguments":{"addr":{"type":"unix",
"data":{"path":"'"$TEST_DIR/nbd"'"}}}}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
+ "arguments":{"addr":{"type":"unix",
+ "data":{"path":"'"$TEST_DIR/nbd"1'"}}}}' "error" # Attempt second server
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
"arguments":{"device":"n"}}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
+ "arguments":{"device":"nosuch"}}' "error" # Attempt to export missing node
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
+ "arguments":{"device":"n"}}' "error" # Attempt to export same name twice
_send_qemu_cmd $QEMU_HANDLE '{"execute":"x-nbd-server-add-bitmap",
"arguments":{"name":"n", "bitmap":"b"}}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
"arguments":{"device":"n", "name":"n2"}}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"x-nbd-server-add-bitmap",
+ "arguments":{"name":"n2", "bitmap":"b2"}}' "error" # Attempt enabled bitmap
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"block-dirty-bitmap-disable",
+ "arguments":{"node":"n", "name":"b2"}}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"x-nbd-server-add-bitmap",
"arguments":{"name":"n2", "bitmap":"b2"}}' "return"
@@ -157,7 +169,10 @@ _send_qemu_cmd $QEMU_HANDLE
'{"execute":"nbd-server-remove",
"arguments":{"name":"n"}}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-remove",
"arguments":{"name":"n2"}}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-remove",
+ "arguments":{"name":"n2"}}' "error" # Attempt duplicate clean
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-stop"}' "return"
+_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-stop"}' "return" # Oops
_send_qemu_cmd $QEMU_HANDLE '{"execute":"quit"}' "return"
# success, all done
diff --git a/tests/qemu-iotests/223.out b/tests/qemu-iotests/223.out
index 99ca172fbb8..e6ede0591cd 100644
--- a/tests/qemu-iotests/223.out
+++ b/tests/qemu-iotests/223.out
@@ -27,10 +27,15 @@ wrote 2097152/2097152 bytes at offset 2097152
{"return": {}}
{"return": {}}
{"return": {}}
+{"error": {"class": "GenericError", "desc": "NBD server not running"}}
{"return": {}}
+{"error": {"class": "GenericError", "desc": "NBD server already running"}}
{"return": {}}
+{"error": {"class": "GenericError", "desc": "Cannot find device=nosuch nor
node_name=nosuch"}}
+{"error": {"class": "GenericError", "desc": "NBD server already has export
named 'n'"}}
{"return": {}}
{"return": {}}
+{"error": {"class": "GenericError", "desc": "Bitmap 'b2' is enabled"}}
{"return": {}}
{"return": {}}
@@ -62,6 +67,8 @@ read 2097152/2097152 bytes at offset 2097152
{"return": {}}
{"return": {}}
+{"error": {"class": "GenericError", "desc": "Export 'n2' is not found"}}
+{"return": {}}
{"return": {}}
{"return": {}}
*** done
--
2.20.1
- [Qemu-devel] [PULL 10/20] iotests: implement pretty-print for log and qmp_log, (continued)
- [Qemu-devel] [PULL 10/20] iotests: implement pretty-print for log and qmp_log, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 09/20] iotests: change qmp_log filters to expect QMP objects only, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 08/20] iotests: remove default filters from qmp_log, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 07/20] iotests: add qmp recursive sorting function, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 12/20] qemu-nbd: Rename 'exp' variable clashing with math::exp() symbol, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 11/20] iotests: add iotest 236 for testing bitmap merge, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 13/20] nbd: Add some error case testing to iotests 223,
Eric Blake <=
- [Qemu-devel] [PULL 14/20] nbd: Forbid nbd-server-stop when server is not running, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 15/20] nbd: Only require disabled bitmap for read-only exports, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 16/20] nbd: Merge nbd_export_set_name into nbd_export_new, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 18/20] nbd: Remove x-nbd-server-add-bitmap, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 19/20] nbd: Merge nbd_export_bitmap into nbd_export_new, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 17/20] nbd: Allow bitmap export during QMP nbd-server-add, Eric Blake, 2019/01/14
- [Qemu-devel] [PULL 20/20] qemu-nbd: Add --bitmap=NAME option, Eric Blake, 2019/01/14
- Re: [Qemu-devel] [PULL 00/20] NBD patches through 2019-01-14, Peter Maydell, 2019/01/15