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 sanely
Signed-off-by: Eric Blake <eblake@redhat.com>
---
tests/qemu-iotests/223 | 2 ++
tests/qemu-iotests/223.out | 20 ++++++++++++++++++++
tests/qemu-iotests/233 | 10 ++++++++++
tests/qemu-iotests/233.out | 15 +++++++++++++++
4 files changed, 47 insertions(+)
diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223
index 397b865d347..e64747a9a61 100755
--- a/tests/qemu-iotests/223
+++ b/tests/qemu-iotests/223
@@ -119,6 +119,7 @@ _send_qemu_cmd $QEMU_HANDLE '{"execute":"x-block-dirty-bitmap-disable",
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start",
"arguments":{"addr":{"type":"unix",
"data":{"path":"'"$TEST_DIR/nbd"'"}}}}' "return"
+$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add",
"arguments":{"device":"n"}}' "return"
_send_qemu_cmd $QEMU_HANDLE '{"execute":"x-nbd-server-add-bitmap",
@@ -127,6 +128,7 @@ _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"}}' "return"
+$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd"
echo
echo "=== Contrast normal status to large granularity dirty-bitmap ==="
diff --git a/tests/qemu-iotests/223.out b/tests/qemu-iotests/223.out
index de417477de0..3342bff3447 100644
--- a/tests/qemu-iotests/223.out
+++ b/tests/qemu-iotests/223.out
@@ -29,10 +29,30 @@ wrote 2097152/2097152 bytes at offset 2097152
{"return": {}}
{"return": {}}
{"return": {}}
+exports available: 0
{"return": {}}
{"return": {}}
{"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: 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:b2
=== Contrast normal status to large granularity dirty-bitmap ===
diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233
index 1814efe3333..5d694d9d242 100755
--- a/tests/qemu-iotests/233
+++ b/tests/qemu-iotests/233
@@ -72,6 +72,9 @@ $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 \
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
+$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \
+ --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
+ --tls-creds=tls0
nbd_server_stop
@@ -84,6 +87,7 @@ nbd_server_start_tcp_socket \
-f $IMGFMT "$TEST_IMG"
$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 "== check TLS works =="
@@ -91,6 +95,9 @@ $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 \
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
+$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \
+ --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
+ --tls-creds=tls0
echo
echo "== check TLS with different CA fails =="
@@ -98,6 +105,9 @@ $QEMU_IMG info --image-opts \
--object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
+$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \
+ --object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \
+ --tls-creds=tls0
echo
echo "== perform I/O over TLS =="
diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out
index 5f416721b03..ab669488669 100644
--- a/tests/qemu-iotests/233.out
+++ b/tests/qemu-iotests/233.out
@@ -15,20 +15,35 @@ wrote 1048576/1048576 bytes at offset 1048576
== 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)
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 ==
qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required before option 8 (structured reply)
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 ==
image: nbd://127.0.0.1:PORT
file format: nbd
virtual size: 64M (67108864 bytes)
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 ==
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
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: option negotiation failed: Verify failed: No certificate was found.
+qemu-nbd: The certificate hasn't got a known issuer
== perform I/O over TLS ==
read 1048576/1048576 bytes at offset 1048576
--
2.17.2
On Fri, Nov 30, 2018 at 04:03:43PM -0600, Eric Blake wrote: > 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 sanely > > Signed-off-by: Eric Blake <eblake@redhat.com> > --- > tests/qemu-iotests/223 | 2 ++ > tests/qemu-iotests/223.out | 20 ++++++++++++++++++++ > tests/qemu-iotests/233 | 10 ++++++++++ > tests/qemu-iotests/233.out | 15 +++++++++++++++ > 4 files changed, 47 insertions(+) > > diff --git a/tests/qemu-iotests/223 b/tests/qemu-iotests/223 > index 397b865d347..e64747a9a61 100755 > --- a/tests/qemu-iotests/223 > +++ b/tests/qemu-iotests/223 > @@ -119,6 +119,7 @@ _send_qemu_cmd $QEMU_HANDLE '{"execute":"x-block-dirty-bitmap-disable", > _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-start", > "arguments":{"addr":{"type":"unix", > "data":{"path":"'"$TEST_DIR/nbd"'"}}}}' "return" > +$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd" > _send_qemu_cmd $QEMU_HANDLE '{"execute":"nbd-server-add", > "arguments":{"device":"n"}}' "return" > _send_qemu_cmd $QEMU_HANDLE '{"execute":"x-nbd-server-add-bitmap", > @@ -127,6 +128,7 @@ _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"}}' "return" > +$QEMU_NBD_PROG -L -k "$TEST_DIR/nbd" > > echo > echo "=== Contrast normal status to large granularity dirty-bitmap ===" > diff --git a/tests/qemu-iotests/223.out b/tests/qemu-iotests/223.out > index de417477de0..3342bff3447 100644 > --- a/tests/qemu-iotests/223.out > +++ b/tests/qemu-iotests/223.out > @@ -29,10 +29,30 @@ wrote 2097152/2097152 bytes at offset 2097152 > {"return": {}} > {"return": {}} > {"return": {}} > +exports available: 0 > {"return": {}} > {"return": {}} > {"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: 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:b2 > > === Contrast normal status to large granularity dirty-bitmap === > > diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233 > index 1814efe3333..5d694d9d242 100755 > --- a/tests/qemu-iotests/233 > +++ b/tests/qemu-iotests/233 > @@ -72,6 +72,9 @@ $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 \ > 2>&1 | sed "s/$nbd_tcp_port/PORT/g" > +$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \ > + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ > + --tls-creds=tls0 > > nbd_server_stop > > @@ -84,6 +87,7 @@ nbd_server_start_tcp_socket \ > -f $IMGFMT "$TEST_IMG" > > $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 "== check TLS works ==" > @@ -91,6 +95,9 @@ $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 \ > 2>&1 | sed "s/$nbd_tcp_port/PORT/g" > +$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \ > + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ > + --tls-creds=tls0 > > echo > echo "== check TLS with different CA fails ==" > @@ -98,6 +105,9 @@ $QEMU_IMG info --image-opts \ > --object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \ > driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \ > 2>&1 | sed "s/$nbd_tcp_port/PORT/g" > +$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \ > + --object tls-creds-x509,dir=${tls_dir}/client2,endpoint=client,id=tls0 \ > + --tls-creds=tls0 > > echo > echo "== perform I/O over TLS ==" > diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out > index 5f416721b03..ab669488669 100644 > --- a/tests/qemu-iotests/233.out > +++ b/tests/qemu-iotests/233.out > @@ -15,20 +15,35 @@ wrote 1048576/1048576 bytes at offset 1048576 > == 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) > 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 == > qemu-img: Could not open 'nbd://localhost:PORT': TLS negotiation required before option 8 (structured reply) > 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 == > image: nbd://127.0.0.1:PORT > file format: nbd > virtual size: 64M (67108864 bytes) > 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 == > qemu-nbd: option negotiation failed: Verify failed: No certificate was found. > 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: option negotiation failed: Verify failed: No certificate was found. > +qemu-nbd: The certificate hasn't got a known issuer > > == perform I/O over TLS == > read 1048576/1048576 bytes at offset 1048576 > -- > 2.17.2 Tests look good, and I ran them too: QEMU -- "/home/rjones/d/qemu/tests/qemu-iotests/../../x86_64-softmmu/qemu-system-x86_64" -nodefaults -machine accel=qtest QEMU_IMG -- "/home/rjones/d/qemu/tests/qemu-iotests/../../qemu-img" QEMU_IO -- "/home/rjones/d/qemu/tests/qemu-iotests/../../qemu-io" --cache writeback -f qcow2 QEMU_NBD -- "/home/rjones/d/qemu/tests/qemu-iotests/../../qemu-nbd" IMGFMT -- qcow2 (compat=1.1) IMGPROTO -- file PLATFORM -- Linux/x86_64 moo 4.18.18-300.fc29.x86_64 TEST_DIR -- /home/rjones/d/qemu/tests/qemu-iotests/scratch SOCKET_SCM_HELPER -- /home/rjones/d/qemu/tests/qemu-iotests/socket_scm_helper 223 233 Passed all 2 tests So: Reviewed-by: Richard W.M. Jones <rjones@redhat.com> Tested-by: Richard W.M. Jones <rjones@redhat.com> Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
01.12.2018 1:03, Eric Blake wrote: > 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 sanely > > Signed-off-by: Eric Blake <eblake@redhat.com> > --- [..] > > === Contrast normal status to large granularity dirty-bitmap === > > diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233 > index 1814efe3333..5d694d9d242 100755 > --- a/tests/qemu-iotests/233 > +++ b/tests/qemu-iotests/233 > @@ -72,6 +72,9 @@ $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 \ > 2>&1 | sed "s/$nbd_tcp_port/PORT/g" > +$QEMU_NBD_PROG -L -b $nbd_tcp_addr -p $nbd_tcp_port \ > + --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \ > + --tls-creds=tls0 --object parameter may be stored to a variable before these two commands, to not duplicate, and in following cases too. with or without: Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> -- Best regards, Vladimir
© 2016 - 2025 Red Hat, Inc.