tests: (blkid) add support for multisession images

This commit adds support for multisession filesystem images to
standard low-probe blkid tests. The expected image name is

 <name>-multi-<offset>[-<offset> ...][-<something>].img

For example:
  iso-multi-0-174-348-genisoimage.img.xz

triggers three sub-tests:
  : iso-multi-genisoimage-0     ... OK
  : iso-multi-genisoimage-174   ... OK
  : iso-multi-genisoimage-348   ... OK

Addresses: https://github.com/karelzak/util-linux/issues/1161
Signed-off-by: Karel Zak <kzak@redhat.com>
This commit is contained in:
Karel Zak 2020-11-30 10:33:20 +01:00
parent 0e0a3b59da
commit abd7815501
13 changed files with 119 additions and 4 deletions

View File

@ -0,0 +1,9 @@
ID_FS_APPLICATION_ID=GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=first_session
ID_FS_LABEL_ENC=first\x20session
ID_FS_SYSTEM_ID=LINUX
ID_FS_TYPE=iso9660
ID_FS_USAGE=filesystem
ID_FS_UUID=2020-11-07-23-16-51-00
ID_FS_UUID_ENC=2020-11-07-23-16-51-00

View File

@ -0,0 +1,9 @@
ID_FS_APPLICATION_ID=GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=second_session
ID_FS_LABEL_ENC=second\x20session
ID_FS_SYSTEM_ID=LINUX
ID_FS_TYPE=iso9660
ID_FS_USAGE=filesystem
ID_FS_UUID=2020-11-07-23-18-14-00
ID_FS_UUID_ENC=2020-11-07-23-18-14-00

View File

@ -0,0 +1,9 @@
ID_FS_APPLICATION_ID=GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=third_session
ID_FS_LABEL_ENC=third\x20session
ID_FS_SYSTEM_ID=LINUX
ID_FS_TYPE=iso9660
ID_FS_USAGE=filesystem
ID_FS_UUID=2020-11-07-23-22-08-00
ID_FS_UUID_ENC=2020-11-07-23-22-08-00

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=first_session
ID_FS_LABEL_ENC=first\x20session
ID_FS_LOGICAL_VOLUME_ID=first session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa71e760000246c
ID_FS_UUID_ENC=5fa71e760000246c
ID_FS_VERSION=1.02
ID_FS_VOLUME_ID=first session
ID_FS_VOLUME_SET_ID=5FA71E760000246C

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=second_session
ID_FS_LABEL_ENC=second\x20session
ID_FS_LOGICAL_VOLUME_ID=second session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa71eba00002500
ID_FS_UUID_ENC=5fa71eba00002500
ID_FS_VERSION=1.02
ID_FS_VOLUME_ID=second session
ID_FS_VOLUME_SET_ID=5FA71EBA00002500

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=third_session
ID_FS_LABEL_ENC=third\x20session
ID_FS_LOGICAL_VOLUME_ID=third session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa71eef00002553
ID_FS_UUID_ENC=5fa71eef00002553
ID_FS_VERSION=1.02
ID_FS_VOLUME_ID=third session
ID_FS_VOLUME_SET_ID=5FA71EEF00002553

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=first_session
ID_FS_LABEL_ENC=first\x20session
ID_FS_LOGICAL_VOLUME_ID=first session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa6f31ee7b7f813
ID_FS_UUID_ENC=5fa6f31ee7b7f813
ID_FS_VERSION=2.01
ID_FS_VOLUME_ID=first session
ID_FS_VOLUME_SET_ID=5fa6f31ee7b7f813LinuxUDF

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=second_session
ID_FS_LABEL_ENC=second\x20session
ID_FS_LOGICAL_VOLUME_ID=second session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa6f32c75d6d6a6
ID_FS_UUID_ENC=5fa6f32c75d6d6a6
ID_FS_VERSION=2.01
ID_FS_VOLUME_ID=second session
ID_FS_VOLUME_SET_ID=5fa6f32c75d6d6a6LinuxUDF

View File

@ -0,0 +1,11 @@
ID_FS_BLOCK_SIZE=2048
ID_FS_LABEL=third_session
ID_FS_LABEL_ENC=third\x20session
ID_FS_LOGICAL_VOLUME_ID=third session
ID_FS_TYPE=udf
ID_FS_USAGE=filesystem
ID_FS_UUID=5fa6f33b0f78bab0
ID_FS_UUID_ENC=5fa6f33b0f78bab0
ID_FS_VERSION=2.01
ID_FS_VOLUME_ID=third session
ID_FS_VOLUME_SET_ID=5fa6f33b0f78bab0LinuxUDF

View File

@ -32,12 +32,34 @@ for img in $(ls $TS_SELF/images-fs/*.img.xz | sort); do
name=$(basename $img .img.xz)
outimg=$TS_OUTDIR/images-fs/${name}.img
ts_init_subtest $name
xz -dc $img > $outimg
$TS_CMD_BLKID -p -o udev $outimg 2> $TS_ERRLOG | sort > $TS_OUTPUT
ts_finalize_subtest
#
# multi session images, the image name contains "-multi-" and all
# -<numbers>- 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