提交 89004368 编写于 作者: K Kevin Wolf

qemu-iotests: Add -o and make v3 the default for qcow2

This adds an -o option to qemu-iotests, which is an option string that
is passed through to qemu-img create -o... This allows testing different
subformat with a command like './check -qcow2 -o compat=0.10'.

For qcow2, if no compat option is specified, compat=1.1 is the new
default.
Signed-off-by: NKevin Wolf <kwolf@redhat.com>
上级 621f0589
...@@ -41,9 +41,6 @@ then ...@@ -41,9 +41,6 @@ then
exit 1 exit 1
fi fi
# we need common
. ./common
# we need common.rc # we need common.rc
if ! . ./common.rc if ! . ./common.rc
then then
...@@ -51,6 +48,9 @@ then ...@@ -51,6 +48,9 @@ then
exit 1 exit 1
fi fi
# we need common
. ./common
#if [ `id -u` -ne 0 ] #if [ `id -u` -ne 0 ]
#then #then
# echo "check: QA must be run as root" # echo "check: QA must be run as root"
......
...@@ -35,6 +35,7 @@ diff="diff -u" ...@@ -35,6 +35,7 @@ diff="diff -u"
verbose=false verbose=false
group=false group=false
xgroup=false xgroup=false
imgopts=false
showme=false showme=false
sortme=false sortme=false
expunge=true expunge=true
...@@ -44,6 +45,7 @@ rm -f $tmp.list $tmp.tmp $tmp.sed ...@@ -44,6 +45,7 @@ rm -f $tmp.list $tmp.tmp $tmp.sed
export IMGFMT=raw export IMGFMT=raw
export IMGPROTO=file export IMGPROTO=file
export IMGOPTS=""
export QEMU_IO_OPTIONS="" export QEMU_IO_OPTIONS=""
for r for r
...@@ -103,6 +105,13 @@ s/ .*//p ...@@ -103,6 +105,13 @@ s/ .*//p
mv $tmp.tmp $tmp.list mv $tmp.tmp $tmp.list
xgroup=false xgroup=false
continue continue
elif $imgopts
then
IMGOPTS="$r"
imgopts=false
continue
fi fi
xpand=true xpand=true
...@@ -130,6 +139,7 @@ check options ...@@ -130,6 +139,7 @@ check options
-nocache use O_DIRECT on backing file -nocache use O_DIRECT on backing file
-misalign misalign memory allocations -misalign misalign memory allocations
-n show me, do not run tests -n show me, do not run tests
-o options -o options to pass to qemu-img create/convert
-T output timestamps -T output timestamps
-r randomize test order -r randomize test order
...@@ -223,6 +233,10 @@ testlist options ...@@ -223,6 +233,10 @@ testlist options
showme=true showme=true
xpand=false xpand=false
;; ;;
-o)
imgopts=true
xpand=false
;;
-r) # randomize test order -r) # randomize test order
randomize=true randomize=true
xpand=false xpand=false
...@@ -299,6 +313,9 @@ BEGIN { for (t='$start'; t<='$end'; t++) printf "%03d\n",t }' \ ...@@ -299,6 +313,9 @@ BEGIN { for (t='$start'; t<='$end'; t++) printf "%03d\n",t }' \
done done
# Set default options for qemu-img create -o if they were not specified
_set_default_imgopts
if [ -s $tmp.list ] if [ -s $tmp.list ]
then then
# found some valid test numbers ... this is good # found some valid test numbers ... this is good
......
...@@ -53,19 +53,44 @@ else ...@@ -53,19 +53,44 @@ else
TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT TEST_IMG=$IMGPROTO:$TEST_DIR/t.$IMGFMT
fi fi
_optstr_add()
{
if [ -n "$1" ]; then
echo "$1,$2"
else
echo "$2"
fi
}
_set_default_imgopts()
{
if [ "$IMGFMT" == "qcow2" ] && ! (echo "$IMGOPTS" | grep "compat=" > /dev/null); then
IMGOPTS=$(_optstr_add "$IMGOPTS" "compat=1.1")
fi
}
_make_test_img() _make_test_img()
{ {
# extra qemu-img options can be added by tests # extra qemu-img options can be added by tests
# at least one argument (the image size) needs to be added # at least one argument (the image size) needs to be added
local extra_img_options="" local extra_img_options=""
local image_size=$* local image_size=$*
local optstr=""
if [ -n "$IMGOPTS" ]; then
optstr=$(_optstr_add "$optstr" "$IMGOPTS")
fi
if [ "$1" = "-b" ]; then if [ "$1" = "-b" ]; then
extra_img_options="$1 $2" extra_img_options="$1 $2"
image_size=$3 image_size=$3
fi fi
if [ \( "$IMGFMT" = "qcow2" -o "$IMGFMT" = "qed" \) -a -n "$CLUSTER_SIZE" ]; then if [ \( "$IMGFMT" = "qcow2" -o "$IMGFMT" = "qed" \) -a -n "$CLUSTER_SIZE" ]; then
extra_img_options="-o cluster_size=$CLUSTER_SIZE $extra_img_options" optstr=$(_optstr_add "$optstr" "cluster_size=$CLUSTER_SIZE")
fi
if [ -n "$optstr" ]; then
extra_img_options="-o $optstr $extra_img_options"
fi fi
# XXX(hch): have global image options? # XXX(hch): have global image options?
...@@ -76,6 +101,7 @@ _make_test_img() ...@@ -76,6 +101,7 @@ _make_test_img()
sed -e "s# encryption=off##g" | \ sed -e "s# encryption=off##g" | \
sed -e "s# cluster_size=[0-9]\\+##g" | \ sed -e "s# cluster_size=[0-9]\\+##g" | \
sed -e "s# table_size=0##g" | \ sed -e "s# table_size=0##g" | \
sed -e "s# compat='[^']*'##g" | \
sed -e "s# compat6=off##g" | \ sed -e "s# compat6=off##g" | \
sed -e "s# static=off##g" sed -e "s# static=off##g"
} }
...@@ -268,7 +294,11 @@ _require_command() ...@@ -268,7 +294,11 @@ _require_command()
_full_imgfmt_details() _full_imgfmt_details()
{ {
echo "$IMGFMT" if [ -n "$IMGOPTS" ]; then
echo "$IMGFMT ($IMGOPTS)"
else
echo "$IMGFMT"
fi
} }
_full_imgproto_details() _full_imgproto_details()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册