[Qemu-devel] [PATCH 2/7] block: qemu-iotests, fix _make_test_img() to work with spaced pathnames

2013-10-31 Thread Jeff Cody
_make_test_img() currently works with spaced pathnames only when not
specifying a backing file.  This fixes it so that the backing file
argument is properly quoted.

Signed-off-by: Jeff Cody jc...@redhat.com
---
 tests/qemu-iotests/common.rc | 13 +++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc
index 4e82604..d24de2c 100644
--- a/tests/qemu-iotests/common.rc
+++ b/tests/qemu-iotests/common.rc
@@ -111,6 +111,8 @@ _make_test_img()
 local image_size=$*
 local optstr=
 local img_name=
+local use_backing=0
+local backing_file=
 
 if [ -n $TEST_IMG_FILE ]; then
 img_name=$TEST_IMG_FILE
@@ -123,7 +125,8 @@ _make_test_img()
 fi
 
 if [ $1 = -b ]; then
-extra_img_options=$1 $2
+use_backing=1
+backing_file=$2
 image_size=$3
 fi
 if [ \( $IMGFMT = qcow2 -o $IMGFMT = qed \) -a -n $CLUSTER_SIZE 
]; then
@@ -135,7 +138,13 @@ _make_test_img()
 fi
 
 # XXX(hch): have global image options?
-$QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size 21 
| \
+(
+ if [ $use_backing = 1 ]; then
+$QEMU_IMG create -f $IMGFMT $extra_img_options -b $backing_file 
$img_name $image_size 21
+ else
+$QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size 
21
+ fi
+) | \
 sed -e s#$IMGPROTO:$TEST_DIR#TEST_DIR#g \
 -e s#$TEST_DIR#TEST_DIR#g \
 -e s#$IMGFMT#IMGFMT#g \
-- 
1.8.3.1




Re: [Qemu-devel] [PATCH 2/7] block: qemu-iotests, fix _make_test_img() to work with spaced pathnames

2013-10-31 Thread Eric Blake
On 10/31/2013 09:57 AM, Jeff Cody wrote:
 _make_test_img() currently works with spaced pathnames only when not
 specifying a backing file.  This fixes it so that the backing file
 argument is properly quoted.
 
 Signed-off-by: Jeff Cody jc...@redhat.com
 ---
  tests/qemu-iotests/common.rc | 13 +++--
  1 file changed, 11 insertions(+), 2 deletions(-)

Reviewed-by: Eric Blake ebl...@redhat.com

As a slight optimization, you could avoid a subshell:

  # XXX(hch): have global image options?
 -$QEMU_IMG create -f $IMGFMT $extra_img_options $img_name $image_size 
 21 | \
 +(
 + if [ $use_backing = 1 ]; then
 +$QEMU_IMG create -f $IMGFMT $extra_img_options -b $backing_file 
 $img_name $image_size 21
 + else
 +$QEMU_IMG create -f $IMGFMT $extra_img_options $img_name 
 $image_size 21
 + fi
 +) | \

$QEMU_IMG create -f $IMGFMT $extra_img_options \
  ${backing_file:+-b $backing_file} $img_name $image_size 21 |

But as not everyone is a shell guru to recognize the ${var+:expansion}
trick, I'm fine with the version you proposed.

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



signature.asc
Description: OpenPGP digital signature