aboutsummaryrefslogtreecommitdiff
path: root/support/testing/tests/core/test_selinux.py
diff options
context:
space:
mode:
Diffstat (limited to 'support/testing/tests/core/test_selinux.py')
-rw-r--r--support/testing/tests/core/test_selinux.py86
1 files changed, 86 insertions, 0 deletions
diff --git a/support/testing/tests/core/test_selinux.py b/support/testing/tests/core/test_selinux.py
new file mode 100644
index 0000000000..683a424d6f
--- /dev/null
+++ b/support/testing/tests/core/test_selinux.py
@@ -0,0 +1,86 @@
+import os
+
+import infra.basetest
+
+
+class TestSELinuxInfra(infra.basetest.BRTest):
+ config = infra.basetest.BASIC_TOOLCHAIN_CONFIG +\
+ """
+ BR2_PACKAGE_REFPOLICY=y
+ BR2_PACKAGE_PYTHON3=y
+ BR2_PACKAGE_SETOOLS=y
+ BR2_TARGET_ROOTFS_CPIO=y
+ """
+
+ def base_test_run(self):
+ cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
+ self.emulator.boot(arch="armv5", kernel="builtin",
+ options=["-initrd", cpio_file])
+ self.emulator.login()
+
+
+class TestSELinuxExtraModules(TestSELinuxInfra):
+ config = TestSELinuxInfra.config + \
+ """
+ BR2_REFPOLICY_EXTRA_MODULES="ntp tor"
+ """
+
+ def test_run(self):
+ TestSELinuxInfra.base_test_run(self)
+
+ out, ret = self.emulator.run("seinfo -t ntpd_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "ntpd_t")
+
+ out, ret = self.emulator.run("seinfo -t tor_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "tor_t")
+
+
+class TestSELinuxExtraModulesDirs(TestSELinuxInfra):
+ config = TestSELinuxInfra.config + \
+ """
+ BR2_REFPOLICY_EXTRA_MODULES_DIRS="{}"
+ """.format(infra.filepath("tests/core/test_selinux/extra_modules"))
+
+ def test_run(self):
+ TestSELinuxInfra.base_test_run(self)
+
+ out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "buildroot_test_t")
+
+
+class TestSELinuxCustomGit(TestSELinuxInfra):
+ config = TestSELinuxInfra.config + \
+ """
+ BR2_PACKAGE_REFPOLICY_CUSTOM_GIT=y
+ BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL="https://github.com/SELinuxProject/refpolicy.git"
+ BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION="RELEASE_2_20200818"
+ """
+
+ def test_run(self):
+ pass
+
+
+class TestSELinuxPackage(TestSELinuxInfra):
+ br2_external = [infra.filepath("tests/core/test_selinux/br2_external")]
+ config = TestSELinuxInfra.config + \
+ """
+ BR2_PACKAGE_SELINUX_TEST=y
+ """
+
+ def test_run(self):
+ TestSELinuxInfra.base_test_run(self)
+
+ out, ret = self.emulator.run("seinfo -t ntpd_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "ntpd_t")
+
+ out, ret = self.emulator.run("seinfo -t tor_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "tor_t")
+
+ out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15)
+ self.assertEqual(ret, 0)
+ self.assertEqual(out[2].strip(), "buildroot_test_t")