Commit 1cc6169b authored by Max Reitz's avatar Max Reitz
Browse files

iotests: Drop format-specific in _filter_img_info



_filter_img_info should remove format-specific information, too.  We
already have such a filter in _img_info, and it is very useful for
query-block-named-block-nodes (etc.), too.

However, in 198 we need that information (but we still want the rest of
the filter), so make that filtering optional.  Note that "the rest of
the filter" includes filtering of the test directory, so we can drop the
_filter_testdir from 198 at the same time.

Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
Message-id: 20171123020832.8165-7-mreitz@redhat.com
Reviewed-by: default avatarEric Blake <eblake@redhat.com>
Reviewed-by: default avatarFam Zheng <famz@redhat.com>
Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
parent 6dd6d7ab
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -91,11 +91,13 @@ $QEMU_IO --object $SECRET0 --object $SECRET1 -c "read -P 0x9 0 $size" --image-op

echo
echo "== checking image base =="
$QEMU_IMG info --image-opts $IMGSPECBASE | _filter_img_info | _filter_testdir | sed -e "/^disk size:/ D"
$QEMU_IMG info --image-opts $IMGSPECBASE | _filter_img_info --format-specific \
    | sed -e "/^disk size:/ D"

echo
echo "== checking image layer =="
$QEMU_IMG info --image-opts $IMGSPECLAYER | _filter_img_info | _filter_testdir | sed -e "/^disk size:/ D"
$QEMU_IMG info --image-opts $IMGSPECLAYER | _filter_img_info --format-specific \
    | sed -e "/^disk size:/ D"


# success, all done
+28 −1
Original line number Diff line number Diff line
@@ -140,6 +140,15 @@ _filter_img_create()

_filter_img_info()
{
    if [[ "$1" == "--format-specific" ]]; then
        local format_specific=1
        shift
    else
        local format_specific=0
    fi

    discard=0
    regex_json_spec_start='^ *"format-specific": \{'
    sed -e "s#$IMGPROTO:$TEST_DIR#TEST_DIR#g" \
        -e "s#$TEST_DIR#TEST_DIR#g" \
        -e "s#$IMGFMT#IMGFMT#g" \
@@ -160,7 +169,25 @@ _filter_img_info()
        -e "/block_state_zero: \\(on\\|off\\)/d" \
        -e "/log_size: [0-9]\\+/d" \
        -e "s/iters: [0-9]\\+/iters: 1024/" \
        -e "s/uuid: [-a-f0-9]\\+/uuid: 00000000-0000-0000-0000-000000000000/"
        -e "s/uuid: [-a-f0-9]\\+/uuid: 00000000-0000-0000-0000-000000000000/" | \
    while IFS='' read -r line; do
        if [[ $format_specific == 1 ]]; then
            discard=0
        elif [[ $line == "Format specific information:" ]]; then
            discard=1
        elif [[ $line =~ $regex_json_spec_start ]]; then
            discard=2
            regex_json_spec_end="^${line%%[^ ]*}\\},? *$"
        fi
        if [[ $discard == 0 ]]; then
            echo "$line"
        elif [[ $discard == 1 && ! $line ]]; then
            echo
            discard=0
        elif [[ $discard == 2 && $line =~ $regex_json_spec_end ]]; then
            discard=0
        fi
    done
}

# filter out offsets and file names from qemu-img map; good for both