mirror of
https://git.yoctoproject.org/poky
synced 2026-04-05 08:02:25 +02:00
classes: rootfs-postcommands: add skip option to overlayfs_qa_check
The overlayfs_qa_check checks if the current root file system has a mount configured for each overlayfs, when the overlayfs class is used. However there are certain instances where this mount point is created at runtime and not static in a fstab entry or systemd mount unit. One such case would be if overlayfs-etc is used, where the device is mounted in the preinit script and not via a mount unit or fstab entry. However there are other possibilities for this as well, like startup scripts that support a dynamic partition layout. For instance when systemd-repart is used. This adds the `OVERLAYFS_QA_SKIP` variable, which allows to define QA skips via its flags. In principle it supports multiple QA skip flags separated by whitespace, but only one (`mount-configured`) is implemented here. To skip this QA check simply add `mount-configured` to the flag of `OVERLAYFS_QA_SKIP` with the same name. For instance if a overlayfs is configured as: OVERLAYFS_MOUNT_POINT[data] = "/data" Skipping this QA check can be done by setting: OVERLAYFS_QA_SKIP[data] = "mount-configured" Also add a testcase and fix a typo (fstat -> fstab). (From OE-Core rev: 34b6d6b5f078c6948e53815af3c7b61de43d851c) Signed-off-by: Claudius Heine <ch@denx.de> Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit 2ce9173169a2a86392c4a85fe9be7fbbd7353b7f) Signed-off-by: Steve Sakoman <steve@sakoman.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
cf6699a5cb
commit
ec7da0e068
@@ -400,6 +400,10 @@ python overlayfs_qa_check() {
|
||||
|
||||
allUnitExist = True;
|
||||
for mountPoint in overlayMountPoints:
|
||||
qaSkip = (d.getVarFlag("OVERLAYFS_QA_SKIP", mountPoint) or "").split()
|
||||
if "mount-configured" in qaSkip:
|
||||
continue
|
||||
|
||||
mountPath = d.getVarFlag('OVERLAYFS_MOUNT_POINT', mountPoint)
|
||||
if mountPath in fstabDevices:
|
||||
continue
|
||||
@@ -409,8 +413,10 @@ python overlayfs_qa_check() {
|
||||
for dirpath in searchpaths):
|
||||
continue
|
||||
|
||||
bb.warn('Mount path %s not found in fstat and unit %s not found '
|
||||
'in systemd unit directories' % (mountPath, mountUnit))
|
||||
bb.warn(f'Mount path {mountPath} not found in fstab and unit '
|
||||
f'{mountUnit} not found in systemd unit directories.')
|
||||
bb.warn(f'Skip this check by setting OVERLAYFS_QA_SKIP[{mountPoint}] = '
|
||||
'"mount-configured"')
|
||||
allUnitExist = False;
|
||||
|
||||
if not allUnitExist:
|
||||
|
||||
@@ -62,11 +62,29 @@ DISTRO_FEATURES += "systemd overlayfs"
|
||||
self.add_overlay_conf_to_machine()
|
||||
|
||||
res = bitbake('core-image-minimal', ignore_status=True)
|
||||
line = getline(res, " Mount path /mnt/overlay not found in fstat and unit mnt-overlay.mount not found in systemd unit directories")
|
||||
line = getline(res, " Mount path /mnt/overlay not found in fstab and unit mnt-overlay.mount not found in systemd unit directories")
|
||||
self.assertTrue(line and line.startswith("WARNING:"), msg=res.output)
|
||||
line = getline(res, "Not all mount paths and units are installed in the image")
|
||||
self.assertTrue(line and line.startswith("ERROR:"), msg=res.output)
|
||||
|
||||
def test_not_all_units_installed_but_qa_skipped(self):
|
||||
"""
|
||||
Summary: Test skipping the QA check
|
||||
Expected: Image is created successfully
|
||||
Author: Claudius Heine <ch@denx.de>
|
||||
"""
|
||||
|
||||
config = """
|
||||
IMAGE_INSTALL:append = " overlayfs-user"
|
||||
DISTRO_FEATURES += "systemd overlayfs"
|
||||
OVERLAYFS_QA_SKIP[mnt-overlay] = "mount-configured"
|
||||
"""
|
||||
|
||||
self.write_config(config)
|
||||
self.add_overlay_conf_to_machine()
|
||||
|
||||
bitbake('core-image-minimal')
|
||||
|
||||
def test_mount_unit_not_set(self):
|
||||
"""
|
||||
Summary: Test whether mount unit was set properly
|
||||
|
||||
Reference in New Issue
Block a user