grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v15 3/3] fs/erofs: Add tests for EROFS in grub-fs-tester


From: Glenn Washburn
Subject: Re: [PATCH v15 3/3] fs/erofs: Add tests for EROFS in grub-fs-tester
Date: Sun, 9 Jun 2024 14:33:39 -0500

On Tue, 21 May 2024 01:20:59 +0800
Gao Xiang <hsiangkao@linux.alibaba.com> wrote:

> From: Yifan Zhao <zhaoyifan@sjtu.edu.cn>
> 
> In this patch, three tests of EROFS are introduced and they cover
> compact, extended and chunk-based inodes, respectively.
> 
> Signed-off-by: Yifan Zhao <zhaoyifan@sjtu.edu.cn>
> Reviewed-by: Glenn Washburn <development@efficientek.com>
> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
> Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
> ---
>  .gitignore                   |  1 +
>  Makefile.util.def            |  6 ++++++
>  tests/erofs_test.in          | 20 ++++++++++++++++++++
>  tests/util/grub-fs-tester.in | 32 +++++++++++++++++++++++++-------
>  4 files changed, 52 insertions(+), 7 deletions(-)
>  create mode 100644 tests/erofs_test.in
> 
> diff --git a/.gitignore b/.gitignore
> index 11fcecf5c..4c1f91db8 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -104,6 +104,7 @@ widthspec.bin
>  /docs/version-dev.texi
>  /docs/version.texi
>  /ehci_test
> +/erofs_test
>  /example_grub_script_test
>  /example_scripted_test
>  /example_unit_test
> diff --git a/Makefile.util.def b/Makefile.util.def
> index 8d3bc107f..0f74a1680 100644
> --- a/Makefile.util.def
> +++ b/Makefile.util.def
> @@ -764,6 +764,12 @@ script = {
>    dependencies = 'garbage-gen$(BUILD_EXEEXT)';
>  };
>  
> +script = {
> +  testcase = native;
> +  name = erofs_test;
> +  common = tests/erofs_test.in;
> +};
> +
>  script = {
>    testcase = native;
>    name = ext234_test;
> diff --git a/tests/erofs_test.in b/tests/erofs_test.in
> new file mode 100644
> index 000000000..51111627a
> --- /dev/null
> +++ b/tests/erofs_test.in
> @@ -0,0 +1,20 @@
> +#!@BUILD_SHEBANG@
> +
> +set -e
> +
> +if [ "x$EUID" = "x" ] ; then
> +  EUID=`id -u`
> +fi
> +
> +if [ "$EUID" != 0 ] ; then
> +   exit 99
> +fi
> +
> +if ! which mkfs.erofs >/dev/null 2>&1; then
> +   echo "mkfs.erofs not installed; cannot test erofs."
> +   exit 99
> +fi
> +
> +"@builddir@/grub-fs-tester" erofs_compact
> +"@builddir@/grub-fs-tester" erofs_extended
> +"@builddir@/grub-fs-tester" erofs_chunk
> diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in
> index ea8b2d1f6..df5dc7542 100644
> --- a/tests/util/grub-fs-tester.in
> +++ b/tests/util/grub-fs-tester.in
> @@ -227,6 +227,10 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>       xsquash*)
>           MINBLKSIZE=4096
>           MAXBLKSIZE=1048576;;
> +     x"erofs_"*)
> +             MINBLKSIZE=4096
> +             MAXBLKSIZE=4096
> +             ;;
>       xxfs|xf2fs)
>           MINBLKSIZE=$SECSIZE
>           # OS Limitation: GNU/Linux doesn't accept > 4096
> @@ -382,8 +386,8 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>                   FSLABEL="g;/_é䏌䐓䏕䎛䎾䏴кит u"
>                   #FSLABEL="g;/_é莭莽😁кит u"
>                   ;;
> -             # FS LIMITATION: reiserfs, extN and jfs label is at most 16 
> UTF-8 characters
> -             x"reiserfs_old" | x"reiserfs" | x"ext"* | x"lvm"* | x"luks"* | 
> x"mdraid"* | x"jfs" | x"jfs_caseins")
> +             # FS LIMITATION: reiserfs, extN, jfs and erofs label is at most 
> 16 UTF-8 characters
> +             x"reiserfs_old" | x"reiserfs" | x"ext"* | x"lvm"* | x"luks"* | 
> x"mdraid"* | x"jfs" | x"jfs_caseins" | x"erofs_"*)
>                   FSLABEL="g;/éт 莭😁";;
>               # FS LIMITATION: No underscore, space, semicolon, slash or 
> international characters in UFS* in label. Limited to 32 UTF-8 characters
>               x"ufs1" | x"ufs1_sun" | x"ufs2")
> @@ -661,7 +665,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>               x"tarfs" | x"cpio_"*| x"ziso9660" | x"romfs" | x"squash4_"*\
>                   | x"iso9660" | xjoliet | xrockridge | xrockridge_joliet \
>                   | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 \
> -                 | xrockridge_joliet_1999)
> +                 | xrockridge_joliet_1999 | x"erofs_"*)
>                   MNTPOINTRW="$MASTER"
>                   MNTPOINTRO="$MASTER"
>                   mkdir -p "$MASTER";;
> @@ -805,7 +809,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>                   sleep 1
>                   "zfs" create "$FSLABEL"/"grub fs"
>                   sleep 1;;
> -             x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | 
> xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | 
> xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"*)
> +             x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | 
> xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | 
> xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"* | x"erofs_"*)
>                   INSTDEVICE=/dev/null;;
>               x"reiserfs")
>                   "mkfs.reiserfs" --format=3.6 -b $BLKSIZE -l "$FSLABEL" -q 
> "${MOUNTDEVICE}" ;;
> @@ -990,7 +994,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>               x"zfs"*)
>                   OSDIR="grub fs/"
>                   GRUBDIR="($GRUBDEVICE)/grub fs@";;
> -             x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | 
> xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | 
> xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"* | xafs)
> +             x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | 
> xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | 
> xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"* | xafs | 
> x"erofs_"*)
>                   ;;
>               *)
>                   if ! mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRW" -o 
> ${MOUNTOPTS}${SELINUXOPTS}rw  ; then
> @@ -1116,6 +1120,18 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>               xsquash4_*)
>                   echo mksquashfs "$MASTER" "${FSIMAGEP}0.img" 
> -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE
>                   mksquashfs "$MASTER" "${FSIMAGEP}0.img" 
> -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ;;
> +             x"erofs_compact")
> +                     echo mkfs.erofs -Eforce-inode-compact -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     mkfs.erofs -Eforce-inode-compact -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     ;;
> +             x"erofs_extended")
> +                     echo mkfs.erofs -Eforce-inode-extended -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     mkfs.erofs -Eforce-inode-extended -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     ;;
> +             x"erofs_chunk")
> +                     echo mkfs.erofs --chunksize=1048576 -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     mkfs.erofs --chunksize=1048576 -L "$FSLABEL" 
> "${FSIMAGEP}0.img" "$MNTPOINTRW"
> +                     ;;

I am not running this test and it is failing because mkfs.erofs has no
"-L" option. I'm on Debian's erofs-utils version 1.5. According to that
versions help, I don't see a way to set the label, only the uuid. Are
you using a different version of erofs-utils to run these tests?

Glenn

>               x"bfs")
>                   sleep 1
>                   fusermount -u "$MNTPOINTRW"
> @@ -1187,6 +1203,8 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>                   ;;
>               xsquash4_*)
>                   ;;
> +             x"erofs_"*)
> +                 ;;
>               xlvm*)
>                   vgchange -a y grub_test
>                   sleep 1
> @@ -1624,7 +1642,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>                       sleep 1;
>                   done
>                   sleep 5;;
> -             x"tarfs" | x"cpio_"* | xrockridge | xjoliet | xrockridge_joliet 
> | x"ziso9660" | x"romfs" | x"squash4_"* | xiso9660 | xiso9660_1999 | 
> xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999)
> +             x"tarfs" | x"cpio_"* | xrockridge | xjoliet | xrockridge_joliet 
> | x"ziso9660" | x"romfs" | x"squash4_"* | xiso9660 | xiso9660_1999 | 
> xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999 | x"erofs_"*)
>                   rm -rf "$MNTPOINTRW";;
>               x"afs")
>                   rm -rf "$MNTPOINTRO"
> @@ -1651,7 +1669,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" 
> "$MAXLOGSECSIZE" 1); do
>                   ;;
>           esac
>           case x"$fs" in
> -             x"tarfs" | x"cpio_"* | x"iso9660" | xrockridge | xjoliet | 
> xrockridge_joliet | x"ziso9660" | x"romfs" | x"squash4_"* | x"iso9660_1999" | 
> xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;;
> +             x"tarfs" | x"cpio_"* | x"iso9660" | xrockridge | xjoliet | 
> xrockridge_joliet | x"ziso9660" | x"romfs" | x"squash4_"* | x"iso9660_1999" | 
> xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999 | x"erofs_"*) ;;
>               *)
>                   for lodev in $LODEVICES; do
>                       while ! losetup -d "$lodev"; do



reply via email to

[Prev in Thread] Current Thread [Next in Thread]