iotests: ask QEMU for supported formats

Supported formats listed by 'qemu' may differ from those listed by
'qemu-img' due to whitelists. Some test cases require specific formats
that may be used with qemu. They can be inquired directly by running
'qemu -drive format=help'. The response takes whitelists into account.
The method supported_formats() serves for that. The method decorator
skip_if_unsupported() checks if all requested formats are whitelisted.
If not, the test case will be skipped. That has been implemented in
the 'check' file in the way similar to the 'test notrun' mechanism.

Suggested-by: Roman Kagan <rkagan@virtuozzo.com>
Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Suggested-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Andrey Shinkevich 2019-03-07 16:33:59 +03:00 committed by Kevin Wolf
parent 9ac404c523
commit 57ed557f03
2 changed files with 55 additions and 1 deletions

View file

@ -25,6 +25,7 @@ try=0
n_bad=0
bad=""
notrun=""
casenotrun=""
interrupt=true
# by default don't output timestamps
@ -664,6 +665,11 @@ END { if (NR > 0) {
echo "Not run:$notrun"
echo "Not run:$notrun" >>check.log
fi
if [ ! -z "$casenotrun" ]
then
echo "Some cases not run in:$casenotrun"
echo "Some cases not run in:$casenotrun" >>check.log
fi
if [ ! -z "$n_bad" -a $n_bad != 0 ]
then
echo "Failures:$bad"
@ -743,6 +749,7 @@ do
printf " " # prettier output with timestamps.
fi
rm -f core $seq.notrun
rm -f $seq.casenotrun
start=$(_wallclock)
$timestamp && printf %s " [$(date "+%T")]"
@ -823,7 +830,11 @@ do
fi
fi
fi
if [ -f $seq.casenotrun ]
then
cat $seq.casenotrun
casenotrun="$casenotrun $seq"
fi
fi
# come here for each test, except when $showme is true