123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- """Test firewalld for both systemd and sysvinit."""
- import os
- import time
- import infra.basetest
- class TestFirewalldSystemd(infra.basetest.BRTest):
- """Build the kernel as firewalld requires several the nftable options."""
- config = """
- BR2_arm=y
- BR2_cortex_a9=y
- BR2_ARM_ENABLE_VFP=y
- BR2_TOOLCHAIN_EXTERNAL=y
- BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
- BR2_INIT_SYSTEMD=y
- BR2_LINUX_KERNEL=y
- BR2_LINUX_KERNEL_CUSTOM_VERSION=y
- BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.61"
- BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
- BR2_LINUX_KERNEL_DTS_SUPPORT=y
- BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9"
- BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
- BR2_PACKAGE_PYTHON3=y
- BR2_PACKAGE_FIREWALLD=y
- BR2_TARGET_ROOTFS_CPIO=y
- # BR2_TARGET_ROOTFS_TAR is not set
- """
- def test_run(self):
- cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
- kernel_file = os.path.join(self.builddir, "images", "zImage")
- dtb_file = os.path.join(self.builddir, "images", "vexpress-v2p-ca9.dtb")
- self.emulator.boot(arch="armv7",
- kernel=kernel_file,
- kernel_cmdline=["console=ttyAMA0,115200"],
- options=[
- "-initrd", cpio_file,
- "-dtb", dtb_file,
- "-M", "vexpress-a9"
- ])
- # It takes quite some time for the system to boot with firewalld,
- self.emulator.login(timeout=120)
- # It may take some time for firewalld to finish startup.
- # Give it at least 15 seconds.
- is_active = False
- for i in range(15):
- output, _ = self.emulator.run("systemctl is-active firewalld")
- if output[0] == "active":
- is_active = True
- break
- time.sleep(1)
- if not is_active:
- self.fail("firewalld failed to activate!")
- cmd = "firewall-cmd --state"
- output, exit_code = self.emulator.run(cmd, timeout=10)
- self.assertIn("running", output[0])
- self.assertEqual(exit_code, 0)
- class TestFirewalldSysVInit(infra.basetest.BRTest):
- """Build the kernel as firewalld requires several nftable options."""
- config = """
- BR2_arm=y
- BR2_cortex_a9=y
- BR2_ARM_ENABLE_VFP=y
- BR2_TOOLCHAIN_EXTERNAL=y
- BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
- BR2_LINUX_KERNEL=y
- BR2_LINUX_KERNEL_CUSTOM_VERSION=y
- BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.1.61"
- BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
- BR2_LINUX_KERNEL_DTS_SUPPORT=y
- BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9"
- BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
- BR2_PACKAGE_PYTHON3=y
- BR2_PACKAGE_FIREWALLD=y
- BR2_TARGET_ROOTFS_CPIO=y
- # BR2_TARGET_ROOTFS_TAR is not set
- """
- def test_run(self):
- cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
- kernel_file = os.path.join(self.builddir, "images", "zImage")
- dtb_file = os.path.join(self.builddir, "images", "vexpress-v2p-ca9.dtb")
- self.emulator.boot(arch="armv7",
- kernel=kernel_file,
- kernel_cmdline=["console=ttyAMA0,115200"],
- options=[
- "-initrd", cpio_file,
- "-dtb", dtb_file,
- "-M", "vexpress-a9"
- ])
- # It takes quite some time for the system to boot with firewalld.
- self.emulator.login(timeout=120)
- cmd = "firewall-cmd --state"
- output, exit_code = self.emulator.run(cmd, timeout=10)
- self.assertIn("running", output[0])
- self.assertEqual(exit_code, 0)
|