nbd patches for 2019-05-07
- iotest improvements -----BEGIN PGP SIGNATURE----- iQEcBAABCAAGBQJc0Z2CAAoJEKeha0olJ0Nqj0MH/30RWZdZYP1xCHMgrHHwfKgb 765TxmcvbTMfa4S72yPyrF54yF51FCq/YsU6TOkJeCz6vgGI3DcIwdiXHm533T71 Yx4XOofynA5orX1t55t0TGok5eOkiaPfE79kp8/NkANxCTDOUoRrt7DjfPjTEgFJ w0y0leeAT9qCHWN8uqFW9bXatTyv6m3GLiOEcCEHRYWqk3oli8Errf1sq8f5oML3 4yH9QRMi/frIbAFF46LVZMQ1rdLdJkSgRuZsWXpUYDrQe+2g0+wLSid9CyotlZL+ QvHohu9G7XoJhOyHDCKroBBIPs1wyVoVhsUeyj3kemTA5uyRGS9mP0qSLuJvrhE= =oQZY -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-05-07' into staging nbd patches for 2019-05-07 - iotest improvements # gpg: Signature made Tue 07 May 2019 16:00:18 BST # gpg: using RSA key A7A16B4A2527436A # gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full] # gpg: aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full] # gpg: aka "[jpeg image of size 6874]" [full] # Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2 F3AA A7A1 6B4A 2527 436A * remotes/ericb/tags/pull-nbd-2019-05-07: iotests: Make 182 do without device_add iotests: Tweak 221 sizing for different hole granularities tests/qemu-iotests: Fix more reference output files due to recent qemu-io change iotests: Fix 233 for ports other than 10809 qemu-nbd: Look up flag names in array Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
df06df4f41
@ -127,18 +127,32 @@ typedef struct NBDExtent {
|
||||
|
||||
/* Transmission (export) flags: sent from server to client during handshake,
|
||||
but describe what will happen during transmission */
|
||||
#define NBD_FLAG_HAS_FLAGS (1 << 0) /* Flags are there */
|
||||
#define NBD_FLAG_READ_ONLY (1 << 1) /* Device is read-only */
|
||||
#define NBD_FLAG_SEND_FLUSH (1 << 2) /* Send FLUSH */
|
||||
#define NBD_FLAG_SEND_FUA (1 << 3) /* Send FUA (Force Unit Access) */
|
||||
#define NBD_FLAG_ROTATIONAL (1 << 4) /* Use elevator algorithm -
|
||||
rotational media */
|
||||
#define NBD_FLAG_SEND_TRIM (1 << 5) /* Send TRIM (discard) */
|
||||
#define NBD_FLAG_SEND_WRITE_ZEROES (1 << 6) /* Send WRITE_ZEROES */
|
||||
#define NBD_FLAG_SEND_DF (1 << 7) /* Send DF (Do not Fragment) */
|
||||
#define NBD_FLAG_CAN_MULTI_CONN (1 << 8) /* Multi-client cache consistent */
|
||||
#define NBD_FLAG_SEND_RESIZE (1 << 9) /* Send resize */
|
||||
#define NBD_FLAG_SEND_CACHE (1 << 10) /* Send CACHE (prefetch) */
|
||||
enum {
|
||||
NBD_FLAG_HAS_FLAGS_BIT = 0, /* Flags are there */
|
||||
NBD_FLAG_READ_ONLY_BIT = 1, /* Device is read-only */
|
||||
NBD_FLAG_SEND_FLUSH_BIT = 2, /* Send FLUSH */
|
||||
NBD_FLAG_SEND_FUA_BIT = 3, /* Send FUA (Force Unit Access) */
|
||||
NBD_FLAG_ROTATIONAL_BIT = 4, /* Use elevator algorithm -
|
||||
rotational media */
|
||||
NBD_FLAG_SEND_TRIM_BIT = 5, /* Send TRIM (discard) */
|
||||
NBD_FLAG_SEND_WRITE_ZEROES_BIT = 6, /* Send WRITE_ZEROES */
|
||||
NBD_FLAG_SEND_DF_BIT = 7, /* Send DF (Do not Fragment) */
|
||||
NBD_FLAG_CAN_MULTI_CONN_BIT = 8, /* Multi-client cache consistent */
|
||||
NBD_FLAG_SEND_RESIZE_BIT = 9, /* Send resize */
|
||||
NBD_FLAG_SEND_CACHE_BIT = 10, /* Send CACHE (prefetch) */
|
||||
};
|
||||
|
||||
#define NBD_FLAG_HAS_FLAGS (1 << NBD_FLAG_HAS_FLAGS_BIT)
|
||||
#define NBD_FLAG_READ_ONLY (1 << NBD_FLAG_READ_ONLY_BIT)
|
||||
#define NBD_FLAG_SEND_FLUSH (1 << NBD_FLAG_SEND_FLUSH_BIT)
|
||||
#define NBD_FLAG_SEND_FUA (1 << NBD_FLAG_SEND_FUA_BIT)
|
||||
#define NBD_FLAG_ROTATIONAL (1 << NBD_FLAG_ROTATIONAL_BIT)
|
||||
#define NBD_FLAG_SEND_TRIM (1 << NBD_FLAG_SEND_TRIM_BIT)
|
||||
#define NBD_FLAG_SEND_WRITE_ZEROES (1 << NBD_FLAG_SEND_WRITE_ZEROES_BIT)
|
||||
#define NBD_FLAG_SEND_DF (1 << NBD_FLAG_SEND_DF_BIT)
|
||||
#define NBD_FLAG_CAN_MULTI_CONN (1 << NBD_FLAG_CAN_MULTI_CONN_BIT)
|
||||
#define NBD_FLAG_SEND_RESIZE (1 << NBD_FLAG_SEND_RESIZE_BIT)
|
||||
#define NBD_FLAG_SEND_CACHE (1 << NBD_FLAG_SEND_CACHE_BIT)
|
||||
|
||||
/* New-style handshake (global) flags, sent from server to client, and
|
||||
control what will happen during handshake phase. */
|
||||
|
46
qemu-nbd.c
46
qemu-nbd.c
@ -279,37 +279,25 @@ static int qemu_nbd_client_list(SocketAddress *saddr, QCryptoTLSCreds *tls,
|
||||
printf(" description: %s\n", list[i].description);
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_HAS_FLAGS) {
|
||||
static const char *const flag_names[] = {
|
||||
[NBD_FLAG_READ_ONLY_BIT] = "readonly",
|
||||
[NBD_FLAG_SEND_FLUSH_BIT] = "flush",
|
||||
[NBD_FLAG_SEND_FUA_BIT] = "fua",
|
||||
[NBD_FLAG_ROTATIONAL_BIT] = "rotational",
|
||||
[NBD_FLAG_SEND_TRIM_BIT] = "trim",
|
||||
[NBD_FLAG_SEND_WRITE_ZEROES_BIT] = "zeroes",
|
||||
[NBD_FLAG_SEND_DF_BIT] = "df",
|
||||
[NBD_FLAG_CAN_MULTI_CONN_BIT] = "multi",
|
||||
[NBD_FLAG_SEND_RESIZE_BIT] = "resize",
|
||||
[NBD_FLAG_SEND_CACHE_BIT] = "cache",
|
||||
};
|
||||
|
||||
printf(" size: %" PRIu64 "\n", list[i].size);
|
||||
printf(" flags: 0x%x (", list[i].flags);
|
||||
if (list[i].flags & NBD_FLAG_READ_ONLY) {
|
||||
printf(" readonly");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_FLUSH) {
|
||||
printf(" flush");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_FUA) {
|
||||
printf(" fua");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_ROTATIONAL) {
|
||||
printf(" rotational");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_TRIM) {
|
||||
printf(" trim");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_WRITE_ZEROES) {
|
||||
printf(" zeroes");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_DF) {
|
||||
printf(" df");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_CAN_MULTI_CONN) {
|
||||
printf(" multi");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_RESIZE) {
|
||||
printf(" resize");
|
||||
}
|
||||
if (list[i].flags & NBD_FLAG_SEND_CACHE) {
|
||||
printf(" cache");
|
||||
for (size_t bit = 0; bit < ARRAY_SIZE(flag_names); bit++) {
|
||||
if (flag_names[bit] && (list[i].flags & (1 << bit))) {
|
||||
printf(" %s", flag_names[bit]);
|
||||
}
|
||||
}
|
||||
printf(" )\n");
|
||||
}
|
||||
|
@ -2,15 +2,15 @@ QA output created by 059
|
||||
|
||||
=== Testing invalid granularity ===
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.vmdk: Invalid granularity, image may be corrupt
|
||||
qemu-io: can't open device TEST_DIR/t.vmdk: Invalid granularity, image may be corrupt
|
||||
|
||||
=== Testing too big L2 table size ===
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.vmdk: L2 table size too big
|
||||
qemu-io: can't open device TEST_DIR/t.vmdk: L2 table size too big
|
||||
|
||||
=== Testing too big L1 table size ===
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.vmdk: L1 size too big
|
||||
qemu-io: can't open device TEST_DIR/t.vmdk: L1 size too big
|
||||
|
||||
=== Testing monolithicFlat creation and opening ===
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2147483648 subformat=monolithicFlat
|
||||
@ -2050,7 +2050,7 @@ wrote 512/512 bytes at offset 10240
|
||||
|
||||
=== Testing monolithicFlat with internally generated JSON file name ===
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 subformat=monolithicFlat
|
||||
can't open: Cannot use relative extent paths with VMDK descriptor file 'json:{"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "read_aio"}'
|
||||
qemu-io: can't open: Cannot use relative extent paths with VMDK descriptor file 'json:{"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "read_aio"}'
|
||||
|
||||
=== Testing version 3 ===
|
||||
image: TEST_DIR/iotest-version3.IMGFMT
|
||||
|
@ -1,43 +1,43 @@
|
||||
QA output created by 083
|
||||
=== Check disconnect before neg1 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect after neg1 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 8 neg1 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 16 neg1 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect before export ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect after export ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 4 export ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 12 export ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 16 export ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect before neg2 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect after neg2 ===
|
||||
|
||||
@ -45,11 +45,11 @@ read failed: Input/output error
|
||||
|
||||
=== Check disconnect 8 neg2 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect 10 neg2 ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
|
||||
|
||||
=== Check disconnect before request ===
|
||||
|
||||
@ -86,23 +86,23 @@ read 512/512 bytes at offset 0
|
||||
|
||||
=== Check disconnect before neg-classic ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
|
||||
=== Check disconnect 8 neg-classic ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
|
||||
=== Check disconnect 16 neg-classic ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
|
||||
=== Check disconnect 24 neg-classic ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
|
||||
=== Check disconnect 28 neg-classic ===
|
||||
|
||||
can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
|
||||
|
||||
=== Check disconnect after neg-classic ===
|
||||
|
||||
@ -110,43 +110,43 @@ read failed: Input/output error
|
||||
|
||||
=== Check disconnect before neg1 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect after neg1 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 8 neg1 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 16 neg1 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect before export ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect after export ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 4 export ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 12 export ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 16 export ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect before neg2 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect after neg2 ===
|
||||
|
||||
@ -154,11 +154,11 @@ read failed: Input/output error
|
||||
|
||||
=== Check disconnect 8 neg2 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 10 neg2 ===
|
||||
|
||||
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect before request ===
|
||||
|
||||
@ -195,23 +195,23 @@ read 512/512 bytes at offset 0
|
||||
|
||||
=== Check disconnect before neg-classic ===
|
||||
|
||||
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 8 neg-classic ===
|
||||
|
||||
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 16 neg-classic ===
|
||||
|
||||
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 24 neg-classic ===
|
||||
|
||||
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect 28 neg-classic ===
|
||||
|
||||
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
|
||||
|
||||
=== Check disconnect after neg-classic ===
|
||||
|
||||
|
@ -2,25 +2,25 @@ QA output created by 092
|
||||
|
||||
== Invalid cluster size ==
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
|
||||
|
||||
== Invalid L2 table size ==
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
|
||||
|
||||
== Invalid size ==
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.qcow: Image too large
|
||||
can't open device TEST_DIR/t.qcow: Image too large
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Image too large
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Image too large
|
||||
|
||||
== Invalid backing file length ==
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
|
||||
can't open device TEST_DIR/t.qcow: Backing file name too long
|
||||
can't open device TEST_DIR/t.qcow: Backing file name too long
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Backing file name too long
|
||||
qemu-io: can't open device TEST_DIR/t.qcow: Backing file name too long
|
||||
*** done
|
||||
|
@ -31,6 +31,7 @@ _cleanup()
|
||||
{
|
||||
_cleanup_test_img
|
||||
rm -f "$TEST_IMG.overlay"
|
||||
rm -f "$TEST_DIR/nbd.socket"
|
||||
}
|
||||
trap "_cleanup; exit \$status" 0 1 2 3 15
|
||||
|
||||
@ -126,15 +127,26 @@ success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
|
||||
'return' \
|
||||
'error'
|
||||
|
||||
# Now we attach the image to a virtio-blk device. This device does
|
||||
# require some permissions (at least WRITE and READ_CONSISTENT), so if
|
||||
# Start an NBD server to which we can attach node1
|
||||
success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
|
||||
"{'execute': 'nbd-server-start',
|
||||
'arguments': {
|
||||
'addr': {
|
||||
'type': 'unix',
|
||||
'data': {
|
||||
'path': '$TEST_DIR/nbd.socket'
|
||||
} } } }" \
|
||||
'return' \
|
||||
'error'
|
||||
|
||||
# Now we attach the image to the NBD server. This server does require
|
||||
# some permissions (at least WRITE and READ_CONSISTENT), so if
|
||||
# reopening node0 unshared any (which it should not have), this will
|
||||
# fail (but it should not).
|
||||
success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
|
||||
"{'execute': 'device_add',
|
||||
"{'execute': 'nbd-server-add',
|
||||
'arguments': {
|
||||
'driver': 'virtio-blk',
|
||||
'drive': 'node1'
|
||||
'device': 'node1'
|
||||
} }" \
|
||||
'return' \
|
||||
'error'
|
||||
|
@ -14,4 +14,5 @@ Formatting 'TEST_DIR/t.qcow2.overlay', fmt=qcow2 size=197120 backing_file=TEST_D
|
||||
{"return": {}}
|
||||
{"return": {}}
|
||||
{"return": {}}
|
||||
{"return": {}}
|
||||
*** done
|
||||
|
@ -2,7 +2,7 @@
|
||||
#
|
||||
# Test qemu-img vs. unaligned images
|
||||
#
|
||||
# Copyright (C) 2018 Red Hat, Inc.
|
||||
# Copyright (C) 2018-2019 Red Hat, Inc.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
@ -41,16 +41,16 @@ echo
|
||||
echo "=== Check mapping of unaligned raw image ==="
|
||||
echo
|
||||
|
||||
_make_test_img 43009 # qemu-img create rounds size up
|
||||
_make_test_img 65537 # qemu-img create rounds size up
|
||||
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
|
||||
|
||||
truncate --size=43009 "$TEST_IMG" # so we resize it and check again
|
||||
truncate --size=65537 "$TEST_IMG" # so we resize it and check again
|
||||
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
|
||||
|
||||
$QEMU_IO -c 'w 43008 1' "$TEST_IMG" | _filter_qemu_io # writing also rounds up
|
||||
$QEMU_IO -c 'w 65536 1' "$TEST_IMG" | _filter_qemu_io # writing also rounds up
|
||||
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
|
||||
|
||||
truncate --size=43009 "$TEST_IMG" # so we resize it and check again
|
||||
truncate --size=65537 "$TEST_IMG" # so we resize it and check again
|
||||
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
|
||||
|
||||
# success, all done
|
||||
|
@ -2,15 +2,15 @@ QA output created by 221
|
||||
|
||||
=== Check mapping of unaligned raw image ===
|
||||
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=43009
|
||||
[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
wrote 1/1 bytes at offset 43008
|
||||
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65537
|
||||
[{ "start": 0, "length": 66048, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
[{ "start": 0, "length": 66048, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
wrote 1/1 bytes at offset 65536
|
||||
1 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||
[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
|
||||
{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
||||
{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
|
||||
{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
||||
{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
[{ "start": 0, "length": 65536, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
|
||||
{ "start": 65536, "length": 1, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
||||
{ "start": 65537, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
[{ "start": 0, "length": 65536, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
|
||||
{ "start": 65536, "length": 1, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
|
||||
{ "start": 65537, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
|
||||
*** done
|
||||
|
@ -139,11 +139,13 @@ nbd_server_start_tcp_socket \
|
||||
|
||||
$QEMU_IMG info --image-opts \
|
||||
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
|
||||
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0
|
||||
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
||||
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||
|
||||
$QEMU_IMG info --image-opts \
|
||||
--object tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0 \
|
||||
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0
|
||||
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
|
||||
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||
|
||||
echo
|
||||
echo "== final server log =="
|
||||
|
@ -57,8 +57,8 @@ read 1048576/1048576 bytes at offset 1048576
|
||||
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
|
||||
|
||||
== check TLS with authorization ==
|
||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=10809,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
|
||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=10809,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
|
||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
|
||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
|
||||
|
||||
== final server log ==
|
||||
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
|
||||
|
Loading…
Reference in New Issue
Block a user