In _img_info, filter out additional information specific to the image format provided by qemu-img info, since tests designed for multiple image formats would produce different outputs for every image format else.
Signed-off-by: Max Reitz <mre...@redhat.com> --- tests/qemu-iotests/common.rc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc index 28b39e4..12d8882 100644 --- a/tests/qemu-iotests/common.rc +++ b/tests/qemu-iotests/common.rc @@ -181,12 +181,29 @@ _check_test_img() _img_info() { + discard=0 $QEMU_IMG info "$@" $TEST_IMG 2>&1 | \ sed -e "s#$IMGPROTO:$TEST_DIR#TEST_DIR#g" \ -e "s#$TEST_DIR#TEST_DIR#g" \ -e "s#$IMGFMT#IMGFMT#g" \ -e "/^disk size:/ D" \ - -e "/actual-size/ D" + -e "/actual-size/ D" | \ + while IFS='' read line; do + if [ "$line" == "Format specific information:" ]; then + discard=1 + elif [ "`echo "$line" | sed -e 's/^ *//'`" == '"format-specific": {' ]; then + discard=2 + json_indent="`echo "$line" | sed -e 's/^\( *\).*$/\1/'`" + fi + if [ $discard == 0 ]; then + echo "$line" + elif [ $discard == 1 -a -z "$line" ]; then + echo + discard=0 + elif [ $discard == 2 -a "`echo "$line" | sed -e 's/ *$//'`" == "${json_indent}}," ]; then + discard=0 + fi + done } _get_pids_by_name() -- 1.8.3.1