tests.package.test_luasyslog.TestLuaLuasyslog: { extends: .runtime_test }
tests.package.test_luasyslog.TestLuajitLuasyslog: { extends: .runtime_test }
tests.package.test_luvi.TestLuvi: { extends: .runtime_test }
+tests.package.test_lxc.TestLxc: { extends: .runtime_test }
tests.package.test_lzlib.TestLuaLzlib: { extends: .runtime_test }
tests.package.test_openjdk.TestOpenJdk: { extends: .runtime_test }
tests.package.test_perl.TestPerl: { extends: .runtime_test }
--- /dev/null
+import os
+
+import infra.basetest
+import pexpect
+
+class TestLxc(infra.basetest.BRTest):
+ config = \
+ """
+ BR2_arm=y
+ BR2_TOOLCHAIN_EXTERNAL=y
+ BR2_LINUX_KERNEL=y
+ BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+ BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.19.79"
+ BR2_LINUX_KERNEL_DEFCONFIG="vexpress"
+ BR2_LINUX_KERNEL_DTS_SUPPORT=y
+ BR2_LINUX_KERNEL_INTREE_DTS_NAME="vexpress-v2p-ca9"
+ BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="{}"
+ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
+ BR2_INIT_SYSTEMD=y
+ BR2_PACKAGE_LXC=y
+ BR2_PACKAGE_TINI=y
+ BR2_PACKAGE_IPERF3=y
+ BR2_ROOTFS_OVERLAY="{}"
+ BR2_TARGET_ROOTFS_CPIO=y
+ """.format(
+ infra.filepath("tests/package/test_lxc/lxc-kernel.config"),
+ infra.filepath("tests/package/test_lxc/rootfs-overlay"))
+
+ def run_ok(self, cmd):
+ self.assertRunOk(cmd, 120)
+
+ def wait_boot(self):
+ #the complete boot with systemd takes more time than what the default multipler permits
+ self.emulator.timeout_multiplier *= 10
+ self.emulator.login()
+
+ def setup_run_test_container(self):
+ self.run_ok("lxc-create -n lxc_iperf3 -t none -f /usr/share/lxc/config/minimal-iperf3.conf")
+ self.run_ok("lxc-start -l trace -n lxc_iperf3 -o /tmp/lxc.log -L /tmp/lxc.console.log")
+ #need to wait for the container to be fully started
+ self.run_ok("sleep 2")
+ self.run_ok("iperf3 -c 192.168.1.2 -t 2")
+ #if the test fails, just cat /tmp/*.log
+
+ 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"])
+ self.wait_boot()
+ self.setup_run_test_container()