Files
buildroot/support/testing/tests/init/test_systemd_selinux.py
Julien Olivain 8d6f9393ec support/testing: test_systemd_selinux: fix test after bootlin toolchains update
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>
2025-08-24 16:26:05 +02:00

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")