qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 2/4] iotests: Switch nbd tests to use Unix rather than TCP


From: Eric Blake
Subject: Re: [PATCH v3 2/4] iotests: Switch nbd tests to use Unix rather than TCP
Date: Mon, 18 Nov 2019 11:57:22 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1

On 11/18/19 11:42 AM, Eric Blake wrote:

+++ b/tests/qemu-iotests/common.filter
@@ -127,7 +127,8 @@ _filter_img_create()
          -e "s#$TEST_DIR#TEST_DIR#g" \
          -e "s#$SOCK_DIR#SOCK_DIR#g" \
          -e "s#$IMGFMT#IMGFMT#g" \
-        -e 's#nbd:127.0.0.1:10810#TEST_DIR/t.IMGFMT#g' \
+        -e 's#nbd:127.0.0.1:[0-9]\\+#TEST_DIR/t.IMGFMT#g' \
+        -e 's#nbd+unix:///\??socket=SOCK_DIR/nbd#TEST_DIR/t.IMGFMT#g' \

Why the second question mark?  I thought the ? after the /// was mandatory.

Some of our code outputs:

nbd+unix://?socket=...

when there is no export name, while other outputs:

nbd+unix:///?socket=...

Re-reading https://github.com/NetworkBlockDevice/nbd/blob/master/doc/uri.md and RFC 3986, I see that both forms appear to be valid URIs (both have empty authority, the first has empty path and the second has path '/', but NBD says leading / in path is stripped to form the export name). However, the NBD document does not mention the 2-slash form with no URI authority or export name; perhaps we should amend that document to make it obvious that it is indeed valid.


When there IS an export name, it outputs

nbd+unix:///name?socket=...

While in this case, the 3-slash form is essential - with only two slashes, the URI 'nbd+unix://name?socket' would be trying to access a URI authority of 'name' with an empty path, rather than the intended empty authority and path of '/name' which gets translated to the NBD export 'name'.


So the regex is matching 2 or 3 / (using \? to make the third optional), then a mandatory ?.


--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




reply via email to

[Prev in Thread] Current Thread [Next in Thread]