iotests: Fix 083 for out-of-tree builds
authorMax Reitz <mreitz@redhat.com>
Sat, 24 May 2014 21:25:00 +0000 (23:25 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 27 Jun 2014 18:00:01 +0000 (20:00 +0200)
iotest 083 filters out debug messages from nbd, which are prefixed (and
recognized) by __FILE__. However, the current filter (/^nbd\.c…/) is
valid for in-tree builds only, as out-of-tree builds will have a path
before that filename (e.g. "/tmp/qemu/nbd.c"). Fix this by adding .*
before "nbd\.c".

While working on this, also fix the regexes: '.' should be escaped and a
single backslash is not enough for escaping when enclosed by double
quotes.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
tests/qemu-iotests/083

index b7ba860..991a9d9 100755 (executable)
@@ -44,7 +44,7 @@ choose_tcp_port() {
 
 wait_for_tcp_port() {
        while ! (netstat --tcp --listening --numeric | \
-                grep "$1.*0.0.0.0:\*.*LISTEN") 2>&1 >/dev/null; do
+                grep "$1.*0\\.0\\.0\\.0:\\*.*LISTEN") 2>&1 >/dev/null; do
                sleep 0.1
        done
 }
@@ -55,8 +55,8 @@ filter_nbd() {
        # callbacks sometimes, making them unreliable.
        #
        # Filter out the TCP port number since this changes between runs.
-       sed -e 's#^nbd.c:.*##g' \
-           -e 's#nbd:127.0.0.1:[^:]*:#nbd:127.0.0.1:PORT:#g'
+       sed -e 's#^.*nbd\.c:.*##g' \
+           -e 's#nbd:127\.0\.0\.1:[^:]*:#nbd:127\.0\.0\.1:PORT:#g'
 }
 
 check_disconnect() {
@@ -82,7 +82,7 @@ EOF
        fi
 
        $PYTHON nbd-fault-injector.py $extra_args "127.0.0.1:$port" "$TEST_DIR/nbd-fault-injector.conf" 2>&1 >/dev/null &
-       wait_for_tcp_port "127.0.0.1:$port"
+       wait_for_tcp_port "127\\.0\\.0\\.1:$port"
        $QEMU_IO -c "read 0 512" "$nbd_url" 2>&1 | _filter_qemu_io | filter_nbd
 
        echo