Move code for extract image file to a function from check_all_images() for common use, so caller can use this function to extrace single image file.
Signed-off-by: Zhao Lei <zhao...@cn.fujitsu.com> --- tests/common | 73 ++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 41 insertions(+), 32 deletions(-) diff --git a/tests/common b/tests/common index 63b0d9f..0c0efef 100644 --- a/tests/common +++ b/tests/common @@ -62,6 +62,44 @@ check_image() run_check $TOP/btrfs check $image } +extract_image() +{ + local image="$1" + + local cleanme= + case "$image" in + *.img) + rm -f $image.restored + : ;; + *.img.xz) + xz --decompress --keep "$image" || \ + _fail "failed to decompress image $image" + image=${image%%.xz} + rm -f $image.restored + cleanme=$image + ;; + *.raw) + cp --sparse=auto $image $image.restored + ;; + *.raw.xz) + xz --decompress --keep "$image" || \ + _fail "failed to decompress image $image" + image=${image%%.xz} + mv "$image" "$image".restored + ;; + esac + + if ! [ -f $image.restored ]; then + echo "restoring image $(basename $image)" >> $RESULTS + $TOP/btrfs-image -r $image $image.restored || \ + _fail "failed to restore image $image" + fi + + [[ "$cleanme" ]] && rm -f "$cleanme" + + EXTRACT_IMAGE_OUTPUT="$image.restored" +} + # Process all image dumps in a given directory, # - raw btrfs filesystem images, suffix .raw # - dtto compressed by XZ, suffix .raw.xz @@ -75,38 +113,9 @@ check_all_images() -iname '*.raw' -o \ -iname '*.raw.xz' \) | sort) do - cleanme= - case "$image" in - *.img) - rm -f $image.restored - : ;; - *.img.xz) - xz --decompress --keep "$image" || \ - _fail "failed to decompress image $image" - image=${image%%.xz} - rm -f $image.restored - cleanme=$image - ;; - *.raw) - cp --sparse=auto $image $image.restored - ;; - *.raw.xz) - xz --decompress --keep "$image" || \ - _fail "failed to decompress image $image" - image=${image%%.xz} - mv "$image" "$image".restored - ;; - esac - - if ! [ -f $image.restored ]; then - echo "restoring image $(basename $image)" >> $RESULTS - $TOP/btrfs-image -r $image $image.restored || \ - _fail "failed to restore image $image" - fi - - check_image $image.restored - - rm -f $image.restored $cleanme + extract_image "$image" + check_image "$EXTRACT_IMAGE_OUTPUT" + rm -f "$EXTRACT_IMAGE_OUTPUT" done } -- 1.8.5.1 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html