#!/bin/bash # # Copyright (C) 2009 Karel Zak # # This file is part of util-linux. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This file is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # TS_TOPDIR="${0%/*}/../.." TS_DESC="superblocks probing" . $TS_TOPDIR/functions.sh ts_init "$*" ts_check_test_command "$TS_CMD_BLKID" ts_check_prog "xz" mkdir -p $TS_OUTDIR/images-fs for img in $(ls $TS_SELF/images-fs/*.img.xz | sort); do name=$(basename $img .img.xz) outimg=$TS_OUTDIR/images-fs/${name}.img xz -dc $img > $outimg # # multi session images, the image name contains "-multi-" and all # -- are interpreted as offset to the sessions. The offset is # calculated in 2048 sectors. For example: iso-multi-0-174-348-genisoimage.img # if [[ $name =~ (.*multi.*) ]]; then sessions=$(echo "$name" \ | awk 'BEGIN { RS="-" } /^[[:digit:]]+$/ { print $0 }') name=$(echo "$name" \ | awk 'BEGIN { RS="-"; ORS="-" } !/^[[:digit:]]+$/ { print $1 }' \ | sed 's/-$//g') for off in $sessions; do ts_init_subtest $name-$off $TS_CMD_BLKID -p -o udev $outimg \ --hint session_offset=$(( $off * 2048 )) \ 2> $TS_ERRLOG | sort > $TS_OUTPUT ts_finalize_subtest done # # Standard filesystem images # else ts_init_subtest $name $TS_CMD_BLKID -p -o udev $outimg 2> $TS_ERRLOG | sort > $TS_OUTPUT ts_finalize_subtest fi done ts_finalize