]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
tests: (blkid) add support for multisession images
authorKarel Zak <kzak@redhat.com>
Mon, 30 Nov 2020 09:33:20 +0000 (10:33 +0100)
committerKarel Zak <kzak@redhat.com>
Mon, 30 Nov 2020 09:33:20 +0000 (10:33 +0100)
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>
13 files changed:
tests/expected/blkid/low-probe-iso-multi-genisoimage-0 [new file with mode: 0644]
tests/expected/blkid/low-probe-iso-multi-genisoimage-174 [new file with mode: 0644]
tests/expected/blkid/low-probe-iso-multi-genisoimage-348 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-genisoimage-0 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-genisoimage-417 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-genisoimage-834 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-mkudffs-0 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-mkudffs-320 [new file with mode: 0644]
tests/expected/blkid/low-probe-udf-multi-mkudffs-640 [new file with mode: 0644]
tests/ts/blkid/images-fs/iso-multi-0-174-348-genisoimage.img.xz [new file with mode: 0644]
tests/ts/blkid/images-fs/udf-multi-0-320-640-mkudffs.img.xz [new file with mode: 0644]
tests/ts/blkid/images-fs/udf-multi-0-417-834-genisoimage.img.xz [new file with mode: 0644]
tests/ts/blkid/low-probe

diff --git a/tests/expected/blkid/low-probe-iso-multi-genisoimage-0 b/tests/expected/blkid/low-probe-iso-multi-genisoimage-0
new file mode 100644 (file)
index 0000000..3a4997a
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-iso-multi-genisoimage-174 b/tests/expected/blkid/low-probe-iso-multi-genisoimage-174
new file mode 100644 (file)
index 0000000..154802c
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-iso-multi-genisoimage-348 b/tests/expected/blkid/low-probe-iso-multi-genisoimage-348
new file mode 100644 (file)
index 0000000..0af9539
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-genisoimage-0 b/tests/expected/blkid/low-probe-udf-multi-genisoimage-0
new file mode 100644 (file)
index 0000000..69735f9
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-genisoimage-417 b/tests/expected/blkid/low-probe-udf-multi-genisoimage-417
new file mode 100644 (file)
index 0000000..fc75ed2
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-genisoimage-834 b/tests/expected/blkid/low-probe-udf-multi-genisoimage-834
new file mode 100644 (file)
index 0000000..b328d5c
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-mkudffs-0 b/tests/expected/blkid/low-probe-udf-multi-mkudffs-0
new file mode 100644 (file)
index 0000000..ad4273f
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-mkudffs-320 b/tests/expected/blkid/low-probe-udf-multi-mkudffs-320
new file mode 100644 (file)
index 0000000..eab71ee
--- /dev/null
@@ -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
diff --git a/tests/expected/blkid/low-probe-udf-multi-mkudffs-640 b/tests/expected/blkid/low-probe-udf-multi-mkudffs-640
new file mode 100644 (file)
index 0000000..b1f7af0
--- /dev/null
@@ -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
diff --git a/tests/ts/blkid/images-fs/iso-multi-0-174-348-genisoimage.img.xz b/tests/ts/blkid/images-fs/iso-multi-0-174-348-genisoimage.img.xz
new file mode 100644 (file)
index 0000000..ec15d8c
Binary files /dev/null and b/tests/ts/blkid/images-fs/iso-multi-0-174-348-genisoimage.img.xz differ
diff --git a/tests/ts/blkid/images-fs/udf-multi-0-320-640-mkudffs.img.xz b/tests/ts/blkid/images-fs/udf-multi-0-320-640-mkudffs.img.xz
new file mode 100644 (file)
index 0000000..cac6318
Binary files /dev/null and b/tests/ts/blkid/images-fs/udf-multi-0-320-640-mkudffs.img.xz differ
diff --git a/tests/ts/blkid/images-fs/udf-multi-0-417-834-genisoimage.img.xz b/tests/ts/blkid/images-fs/udf-multi-0-417-834-genisoimage.img.xz
new file mode 100644 (file)
index 0000000..c1c6fc7
Binary files /dev/null and b/tests/ts/blkid/images-fs/udf-multi-0-417-834-genisoimage.img.xz differ
index e617c89b14fa096187fa3cdc59aa650de78c158c..3847653cd076ff1524a92af7072a4a641235c348 100755 (executable)
@@ -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