This patch describes two containers, Debian and Fedora, with most required
packages to build and test/check GRUB. The Containerfile is actually a template
which is populated dinamically based on the podman (or docker) commands provided
on the INSTALL file so to create the container images, you actually have to 
copy&paste
these commands just one time.

To test the container with latest upstrem, I have executed the following command

$ podman run fedora-grub /grub/check.sh

removing all output log except the test-suite.log, I got the following (you
should get exactly the same results as this is a container)


    =================================
       GRUB 2.13: ./test-suite.log
    =================================

    # TOTAL: 88
    # PASS:  65
    # SKIP:  3
    # XFAIL: 0
    # FAIL:  1
    # XPASS: 0
    # ERROR: 19

    System information (uname -a): Linux 6.15.9-101.fc41.x86_64 #1 SMP 
PREEMPT_DYNAMIC Sat Aug 2 12:38:24 UTC 2025 x86_64
    Distribution information (/etc/os-release):
    NAME="Fedora Linux"
    VERSION="42 (Container Image)"
    RELEASE_TYPE=stable
    ID=fedora
    VERSION_ID=42
    VERSION_CODENAME=""
    PLATFORM_ID="platform:f42"
    PRETTY_NAME="Fedora Linux 42 (Container Image)"

    .. contents:: :depth: 2

    FAIL: erofs_test
    ================

    1024+0 records in
    1024+0 records out
    1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.00322471 s, 325 MB/s
    mkfs.erofs -L "g;/éт 莭😁" -Eforce-inode-compact 
/tmp/grub-fs-tester.20250919231809691969935.erofs_compact.a8z/erofs_compact_512_4096_1_0.img
 /tmp/grub-fs-tester.20250919231809691969935.erofs_compact.a8z/master
    <E> erofs: invalid volume label
    Try 'mkfs.erofs --help' for more information.
    mkfs.erofs 1.8.10
    FAIL erofs_test (exit status: 1)

    ERROR: ext234_test
    ==================

    losetup: 
/tmp/grub-fs-tester.20250919231809819969810.ext2_old.fUk/ext2_old_256_1024_1_0.img:
 failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR ext234_test (exit status: 99)

    ERROR: hfsplus_test
    ===================

    losetup: 
/tmp/grub-fs-tester.20250919232118317496315.hfsplus.eL6/hfsplus_512_512_1_0.img:
 failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR hfsplus_test (exit status: 99)

    ERROR: ntfs_test
    ================

    losetup: 
/tmp/grub-fs-tester.20250919232118341556194.ntfs.wju/ntfs_256_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR ntfs_test (exit status: 99)

    ERROR: reiserfs_test
    ====================

    mkfs.reiserfs not installed; cannot test reiserfs.
    ERROR reiserfs_test (exit status: 99)

    ERROR: fat_test
    ===============

    losetup: 
/tmp/grub-fs-tester.20250919232118371811059.vfat16a.LsP/vfat16a_512_512_1_0.img:
 failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR fat_test (exit status: 99)

    ERROR: minixfs_test
    ===================

    losetup: 
/tmp/grub-fs-tester.20250919232118398197479.minix.oFp/minix_512_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR minixfs_test (exit status: 99)

    ERROR: xfs_test
    ===============

    losetup: 
/tmp/grub-fs-tester.20250919232118422926195.xfs_crc.jJT/xfs_crc_512_1024_1_0.img:
 failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR xfs_test (exit status: 99)

    ERROR: f2fs_test
    ================

    losetup: 
/tmp/grub-fs-tester.20250919232118446273287.f2fs.Pp1/f2fs_512_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR f2fs_test (exit status: 99)

    ERROR: nilfs2_test
    ==================

    losetup: 
/tmp/grub-fs-tester.20250919232118469197123.nilfs2.0YU/nilfs2_512_4096_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR nilfs2_test (exit status: 99)

    ERROR: exfat_test
    =================

    losetup: 
/tmp/grub-fs-tester.20250919232121043740620.exfat.yLl/exfat_512_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR exfat_test (exit status: 99)

    ERROR: udf_test
    ===============

    losetup: 
/tmp/grub-fs-tester.20250919232123672240022.udf.Plv/udf_512_1024_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR udf_test (exit status: 99)

    ERROR: hfs_test
    ===============

    mkfs.hfs not installed; cannot test HFS.
    ERROR hfs_test (exit status: 99)

    ERROR: jfs_test
    ===============

    losetup: 
/tmp/grub-fs-tester.20250919232123699424716.jfs.k78/jfs_512_512_1_0.img: failed 
to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR jfs_test (exit status: 99)

    ERROR: btrfs_test
    =================

    losetup: 
/tmp/grub-fs-tester.20250919232123725943375.btrfs.WWS/btrfs_4096_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR btrfs_test (exit status: 99)

    ERROR: zfs_test
    ===============

    losetup: 
/tmp/grub-fs-tester.20250919232123750030765.zfs.0zf/zfs_512_512_1_0.img: failed 
to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR zfs_test (exit status: 99)

    ERROR: luks1_test
    =================

    losetup: 
/tmp/grub-fs-tester.20250919232143344935679.luks1.beR/luks1_512_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR luks1_test (exit status: 99)

    ERROR: luks2_test
    =================

    losetup: 
/tmp/grub-fs-tester.20250919232143400044297.luks2.MDj/luks2_512_512_1_0.img: 
failed to set up loop device: No such file or directory
    losetup: device node /dev/loop0 (7:0) is lost. You may use mknod(1) to 
recover it.
    ERROR luks2_test (exit status: 99)

    SKIP: tpm2_key_protector_test
    =============================

    SKIP tpm2_key_protector_test (exit status: 77)

    ERROR: grub_cmd_cryptomount
    ===========================


    Note: Temporary directory cannot be removed:
            /tmp/1758324145.LUKS1_test_cryptsetup_defaults
          Please inspect and remove manually.

    Error[23]: Cannot initialize device-mapper. Is dm_mod kernel module loaded?
    Cannot use device grub-shell-luks-tester.LpsdRVbEBf, name is invalid or 
still in use.
    Cannot initialize device-mapper. Is dm_mod kernel module loaded?
    Cannot use device grub-shell-luks-tester.LpsdRVbEBf, name is invalid or 
still in use.
    LUKS1 test cryptsetup defaults: ERROR
    ERROR grub_cmd_cryptomount (exit status: 99)

    SKIP: pseries_test
    ==================

    SKIP pseries_test (exit status: 77)

    SKIP: core_compress_test
    ========================

    SKIP core_compress_test (exit status: 77)

    ERROR: grub_func_test
    =====================

    Functional test requires grub-mkfont support
    ERROR grub_func_test (exit status: 99)


There are some efforts to fix some tests [1,2] but as seen above there are 
others
to be addressed when running checks on containers, specially those involving 
loopback
devices.

[1] https://lists.nongnu.org/archive/html/grub-devel/2025-08/msg00249.html
[2] https://lists.gnu.org/archive/html/grub-devel/2025-09/msg00190.html

Leo Sandoval (1):
  Define a Containerfile and instructions to build distro images

 INSTALL                 | 158 ++++++++++++++++++++++++++++++++++++++++
 container/Containerfile |  16 ++++
 container/check.sh      |  18 +++++
 3 files changed, 192 insertions(+)
 create mode 100644 container/Containerfile
 create mode 100644 container/check.sh

-- 
2.50.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to