diff options
author | Baruch Siach <baruch@tkos.co.il> | 2024-03-17 20:33:25 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-04-04 14:02:24 +0100 |
commit | 1a61da196f014dc34a998d3e46f03abc79ebc84d (patch) | |
tree | 7842b6857bc4b1d1d592cd583df42480b5bdff43 /meta/lib | |
parent | b64d4e30bbd972d0665cc310bc0fdde3b49f0367 (diff) | |
download | openembedded-core-contrib-1a61da196f014dc34a998d3e46f03abc79ebc84d.tar.gz |
oeqa/selftest/overlayfs: test read-only rootfs
Use the read-only squashfs filesystem to test the read-only case.
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oeqa/selftest/cases/overlayfs.py | 34 |
1 files changed, 28 insertions, 6 deletions
diff --git a/meta/lib/oeqa/selftest/cases/overlayfs.py b/meta/lib/oeqa/selftest/cases/overlayfs.py index cd0dc60c64..e31063567b 100644 --- a/meta/lib/oeqa/selftest/cases/overlayfs.py +++ b/meta/lib/oeqa/selftest/cases/overlayfs.py @@ -353,6 +353,7 @@ EXTRA_IMAGE_FEATURES += "read-only-rootfs" # Image configuration for overlayfs-etc OVERLAYFS_ETC_MOUNT_POINT = "/data" OVERLAYFS_ETC_DEVICE = "/dev/sda3" +OVERLAYFS_ROOTFS_TYPE = "ext4" """ self.write_config(config) @@ -367,13 +368,17 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3" @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently") def test_sbin_init_preinit(self): - self.run_sbin_init(False) + self.run_sbin_init(False, "ext4") @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently") def test_sbin_init_original(self): - self.run_sbin_init(True) + self.run_sbin_init(True, "ext4") - def run_sbin_init(self, origInit): + @skipIfNotMachine("qemux86-64", "tests are qemux86-64 specific currently") + def test_sbin_init_read_only(self): + self.run_sbin_init(True, "squashfs") + + def run_sbin_init(self, origInit, rootfsType): """ Summary: Confirm we can replace original init and mount overlay on top of /etc Expected: Image is created successfully and /etc is mounted as an overlay @@ -384,7 +389,9 @@ OVERLAYFS_ETC_DEVICE = "/dev/sda3" args = { 'OVERLAYFS_INIT_OPTION': "" if origInit else "init=/sbin/preinit", - 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True) + 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': int(origInit == True), + 'OVERLAYFS_ROOTFS_TYPE': rootfsType, + 'OVERLAYFS_ETC_CREATE_MOUNT_DIRS': int(rootfsType == "ext4") } self.write_config(config.format(**args)) @@ -437,7 +444,9 @@ IMAGE_INSTALL:append = " overlayfs-user" args = { 'OVERLAYFS_INIT_OPTION': "", - 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1 + 'OVERLAYFS_ETC_USE_ORIG_INIT_NAME': 1, + 'OVERLAYFS_ROOTFS_TYPE': "ext4", + 'OVERLAYFS_ETC_CREATE_MOUNT_DIRS': 1 } self.write_config(config.format(**args)) @@ -463,10 +472,14 @@ IMAGE_INSTALL:append = " overlayfs-user" INIT_MANAGER = "systemd" # enable overlayfs in the kernel -KERNEL_EXTRA_FEATURES:append = " features/overlayfs/overlayfs.scc" +KERNEL_EXTRA_FEATURES:append = " \ + features/overlayfs/overlayfs.scc \ + cfg/fs/squashfs.scc" IMAGE_FSTYPES += "wic" OVERLAYFS_INIT_OPTION = "{OVERLAYFS_INIT_OPTION}" +OVERLAYFS_ROOTFS_TYPE = "{OVERLAYFS_ROOTFS_TYPE}" +OVERLAYFS_ETC_CREATE_MOUNT_DIRS = "{OVERLAYFS_ETC_CREATE_MOUNT_DIRS}" WKS_FILE = "overlayfs_etc.wks.in" EXTRA_IMAGE_FEATURES += "read-only-rootfs" @@ -477,4 +490,13 @@ OVERLAYFS_ETC_MOUNT_POINT = "/data" OVERLAYFS_ETC_FSTYPE = "ext4" OVERLAYFS_ETC_DEVICE = "/dev/sda3" OVERLAYFS_ETC_USE_ORIG_INIT_NAME = "{OVERLAYFS_ETC_USE_ORIG_INIT_NAME}" + +ROOTFS_POSTPROCESS_COMMAND += "{OVERLAYFS_ROOTFS_TYPE}_rootfs" + +ext4_rootfs() {{ +}} + +squashfs_rootfs() {{ + mkdir -p ${{IMAGE_ROOTFS}}/data +}} """ |