mirror of https://github.com/xemu-project/xemu.git
iotests: Enhance 223, 233 to cover 'qemu-nbd --list'
Any good new feature deserves some regression testing :) Coverage includes: - 223: what happens when there are 0 or more than 1 export, proof that we can see multiple contexts including qemu:dirty-bitmap - 233: proof that we can list over TLS, and that mix-and-match of plain/TLS listings will behave sanely Signed-off-by: Eric Blake <eblake@redhat.com> Reviewed-by: Richard W.M. Jones <rjones@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20190117193658.16413-22-eblake@redhat.com>
This commit is contained in:
parent
7c6f5ddca6
commit
ddd09448fd
|
@ -127,6 +127,7 @@ _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
|
||||||
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
|
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
|
||||||
"arguments":{"addr":{"type":"unix",
|
"arguments":{"addr":{"type":"unix",
|
||||||
"data":{"path":"'"$TEST_DIR/nbd"1'"}}}}' "error" # Attempt second server
|
"data":{"path":"'"$TEST_DIR/nbd"1'"}}}}' "error" # Attempt second server
|
||||||
|
$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd"
|
||||||
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
||||||
"arguments":{"device":"n", "bitmap":"b"}}' "return"
|
"arguments":{"device":"n", "bitmap":"b"}}' "return"
|
||||||
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
||||||
|
@ -142,6 +143,7 @@ _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
||||||
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
|
||||||
"arguments":{"device":"n", "name":"n2", "writable":true,
|
"arguments":{"device":"n", "name":"n2", "writable":true,
|
||||||
"bitmap":"b2"}}' "return"
|
"bitmap":"b2"}}' "return"
|
||||||
|
$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "=== Contrast normal status to large granularity dirty-bitmap ==="
|
echo "=== Contrast normal status to large granularity dirty-bitmap ==="
|
||||||
|
|
|
@ -30,12 +30,32 @@ wrote 2097152/2097152 bytes at offset 2097152
|
||||||
{"error": {"class": "GenericError", "desc": "NBD server not running"}}
|
{"error": {"class": "GenericError", "desc": "NBD server not running"}}
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{"error": {"class": "GenericError", "desc": "NBD server already running"}}
|
{"error": {"class": "GenericError", "desc": "NBD server already running"}}
|
||||||
|
exports available: 0
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
{"error": {"class": "GenericError", "desc": "Cannot find device=nosuch nor node_name=nosuch"}}
|
{"error": {"class": "GenericError", "desc": "Cannot find device=nosuch nor node_name=nosuch"}}
|
||||||
{"error": {"class": "GenericError", "desc": "NBD server already has export named 'n'"}}
|
{"error": {"class": "GenericError", "desc": "NBD server already has export named 'n'"}}
|
||||||
{"error": {"class": "GenericError", "desc": "Enabled bitmap 'b2' incompatible with readonly export"}}
|
{"error": {"class": "GenericError", "desc": "Enabled bitmap 'b2' incompatible with readonly export"}}
|
||||||
{"error": {"class": "GenericError", "desc": "Bitmap 'b3' is not found"}}
|
{"error": {"class": "GenericError", "desc": "Bitmap 'b3' is not found"}}
|
||||||
{"return": {}}
|
{"return": {}}
|
||||||
|
exports available: 2
|
||||||
|
export: 'n'
|
||||||
|
size: 4194304
|
||||||
|
flags: 0x4ef ( readonly flush fua trim zeroes df cache )
|
||||||
|
min block: 512
|
||||||
|
opt block: 4096
|
||||||
|
max block: 33554432
|
||||||
|
available meta contexts: 2
|
||||||
|
base:allocation
|
||||||
|
qemu:dirty-bitmap:b
|
||||||
|
export: 'n2'
|
||||||
|
size: 4194304
|
||||||
|
flags: 0x4ed ( flush fua trim zeroes df cache )
|
||||||
|
min block: 512
|
||||||
|
opt block: 4096
|
||||||
|
max block: 33554432
|
||||||
|
available meta contexts: 2
|
||||||
|
base:allocation
|
||||||
|
qemu:dirty-bitmap:b2
|
||||||
|
|
||||||
=== Contrast normal status to large granularity dirty-bitmap ===
|
=== Contrast normal status to large granularity dirty-bitmap ===
|
||||||
|
|
||||||
|
|
|
@ -69,10 +69,12 @@ echo
|
||||||
echo "== check TLS client to plain server fails =="
|
echo "== check TLS client to plain server fails =="
|
||||||
nbd_server_start_tcp_socket -f $IMGFMT "$TEST_IMG" 2> "$TEST_DIR/server.log"
|
nbd_server_start_tcp_socket -f $IMGFMT "$TEST_IMG" 2> "$TEST_DIR/server.log"
|
||||||
|
|
||||||
$QEMU_IMG info --image-opts \
|
obj=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
||||||
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
|
$QEMU_IMG info --image-opts --object $obj \
|
||||||
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"
|
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||||
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
||||||
|
--tls-creds=tls0
|
||||||
|
|
||||||
nbd_server_stop
|
nbd_server_stop
|
||||||
|
|
||||||
|
@ -85,20 +87,25 @@ nbd_server_start_tcp_socket \
|
||||||
-f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
-f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
|
||||||
|
|
||||||
$QEMU_IMG info nbd://localhost:$nbd_tcp_port 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
$QEMU_IMG info nbd://localhost:$nbd_tcp_port 2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||||
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "== check TLS works =="
|
echo "== check TLS works =="
|
||||||
$QEMU_IMG info --image-opts \
|
obj=tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0
|
||||||
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
|
$QEMU_IMG info --image-opts --object $obj \
|
||||||
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"
|
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||||
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
||||||
|
--tls-creds=tls0
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "== check TLS with different CA fails =="
|
echo "== check TLS with different CA fails =="
|
||||||
$QEMU_IMG info --image-opts \
|
obj=tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0
|
||||||
--object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \
|
$QEMU_IMG info --image-opts --object $obj \
|
||||||
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"
|
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
|
||||||
|
$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port --object $obj \
|
||||||
|
--tls-creds=tls0
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "== perform I/O over TLS =="
|
echo "== perform I/O over TLS =="
|
||||||
|
|
|
@ -15,19 +15,33 @@ wrote 1048576/1048576 bytes at offset 1048576
|
||||||
== check TLS client to plain server fails ==
|
== check TLS client to plain server fails ==
|
||||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Denied by server for option 5 (starttls)
|
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Denied by server for option 5 (starttls)
|
||||||
server reported: TLS not configured
|
server reported: TLS not configured
|
||||||
|
qemu-nbd: Denied by server for option 5 (starttls)
|
||||||
|
server reported: TLS not configured
|
||||||
|
|
||||||
== check plain client to TLS server fails ==
|
== check plain client to TLS server fails ==
|
||||||
qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required before option 8 (structured reply)
|
qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required before option 8 (structured reply)
|
||||||
server reported: Option 0x8 not permitted before TLS
|
server reported: Option 0x8 not permitted before TLS
|
||||||
|
qemu-nbd: TLS negotiation required before option 8 (structured reply)
|
||||||
|
server reported: Option 0x8 not permitted before TLS
|
||||||
|
|
||||||
== check TLS works ==
|
== check TLS works ==
|
||||||
image: nbd://127.0.0.1:PORT
|
image: nbd://127.0.0.1:PORT
|
||||||
file format: nbd
|
file format: nbd
|
||||||
virtual size: 64M (67108864 bytes)
|
virtual size: 64M (67108864 bytes)
|
||||||
disk size: unavailable
|
disk size: unavailable
|
||||||
|
exports available: 1
|
||||||
|
export: ''
|
||||||
|
size: 67108864
|
||||||
|
flags: 0x4ed ( flush fua trim zeroes df cache )
|
||||||
|
min block: 512
|
||||||
|
opt block: 4096
|
||||||
|
max block: 33554432
|
||||||
|
available meta contexts: 1
|
||||||
|
base:allocation
|
||||||
|
|
||||||
== check TLS with different CA fails ==
|
== check TLS with different CA fails ==
|
||||||
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': The certificate hasn't got a known issuer
|
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': The certificate hasn't got a known issuer
|
||||||
|
qemu-nbd: The certificate hasn't got a known issuer
|
||||||
|
|
||||||
== perform I/O over TLS ==
|
== perform I/O over TLS ==
|
||||||
read 1048576/1048576 bytes at offset 1048576
|
read 1048576/1048576 bytes at offset 1048576
|
||||||
|
@ -39,4 +53,5 @@ read 1048576/1048576 bytes at offset 1048576
|
||||||
|
|
||||||
== final server log ==
|
== final server log ==
|
||||||
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
|
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
|
||||||
|
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
|
||||||
*** done
|
*** done
|
||||||
|
|
Loading…
Reference in New Issue