mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-10 16:24:17 -09:00
Since Buildroot commit [1] "update to Bootlin toolchains 2025.08-1",
the tests.init.test_systemd_selinux fails when building its
Kernel 6.1.26 with gcc 15.1.0.
This commit fixes the issue by updating the test Kernel to the
latest 6.1.y version (6.1.148 at the time of this commit) which
includes several fixes for gcc-15 like this one [2].
Fixes:
https://gitlab.com/buildroot.org/buildroot/-/jobs/10984685949
https://gitlab.com/buildroot.org/buildroot/-/jobs/10984685950
[1] 947dbc92a2
[2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=0f82f6f1556389d6489795f03ac3f68cde99d5ad
Signed-off-by: Julien Olivain <ju.o@free.fr>
[Romain: Add a link to one of the kernel commit related to gcc-15]
Signed-off-by: Romain Naour <romain.naour@smile.fr>
78 lines
2.5 KiB
Python
78 lines
2.5 KiB
Python
import os
|
|
|
|
import infra.basetest
|
|
|
|
|
|
class TestSELinuxSystemd(infra.basetest.BRTest):
|
|
config = \
|
|
"""
|
|
BR2_x86_64=y
|
|
BR2_x86_corei7=y
|
|
BR2_TOOLCHAIN_EXTERNAL=y
|
|
BR2_INIT_SYSTEMD=y
|
|
BR2_LINUX_KERNEL=y
|
|
BR2_LINUX_KERNEL_CUSTOM_VERSION=y
|
|
BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.148"
|
|
BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
|
|
BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/x86_64/linux.config"
|
|
BR2_LINUX_KERNEL_NEEDS_HOST_LIBELF=y
|
|
BR2_PACKAGE_LIBSELINUX=y
|
|
BR2_PACKAGE_REFPOLICY=y
|
|
"""
|
|
|
|
def wait_boot(self):
|
|
# The complete boot with systemd takes more time than what the
|
|
# default typically allows
|
|
self.emulator.login(timeout=600)
|
|
|
|
def run_tests(self, fstype):
|
|
kernel = os.path.join(self.builddir, "images", "bzImage")
|
|
rootfs = os.path.join(self.builddir, "images", "rootfs.{}".format(fstype))
|
|
|
|
self.emulator.boot(arch="x86_64", kernel=kernel,
|
|
kernel_cmdline=["root=/dev/vda", "rootfstype={}".format(fstype),
|
|
"console=ttyS0", "security=selinux"],
|
|
options=["-cpu", "Nehalem",
|
|
"-drive", "file={},if=virtio,format=raw".format(rootfs)])
|
|
self.wait_boot()
|
|
|
|
# Test the reported SELinux mode.
|
|
out, ret = self.emulator.run("getenforce")
|
|
self.assertEqual(ret, 0)
|
|
self.assertEqual(out[0], "Permissive")
|
|
|
|
# Check the extended arguments are correctly set.
|
|
out, ret = self.emulator.run("ls -dZ /")
|
|
self.assertEqual(ret, 0)
|
|
self.assertEqual(out[0].split()[0], "system_u:object_r:root_t")
|
|
|
|
# Check init's attributes.
|
|
out, ret = self.emulator.run("cat /proc/1/attr/current")
|
|
self.assertEqual(ret, 0)
|
|
self.assertEqual(out[0], "system_u:system_r:init_t\0")
|
|
|
|
|
|
class TestSELinuxSystemdExt4(TestSELinuxSystemd):
|
|
config = TestSELinuxSystemd.config + \
|
|
"""
|
|
BR2_TARGET_ROOTFS_EXT2=y
|
|
BR2_TARGET_ROOTFS_EXT2_4=y
|
|
BR2_TARGET_ROOTFS_EXT2_SIZE="100M"
|
|
"""
|
|
|
|
def test_run(self):
|
|
self.run_tests("ext4")
|
|
|
|
|
|
class TestSELinuxSystemdSquashfs(TestSELinuxSystemd):
|
|
config = TestSELinuxSystemd.config + \
|
|
"""
|
|
BR2_TARGET_ROOTFS_SQUASHFS=y
|
|
BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}"
|
|
""".format(
|
|
infra.filepath("tests/init/test_systemd_selinux/linux-squashfs.fragment"),
|
|
)
|
|
|
|
def test_run(self):
|
|
self.run_tests("squashfs")
|