1import os 2 3import infra.basetest 4 5 6class TestSELinuxInfra(infra.basetest.BRTest): 7 config = infra.basetest.BASIC_TOOLCHAIN_CONFIG +\ 8 """ 9 BR2_PACKAGE_REFPOLICY=y 10 BR2_PACKAGE_PYTHON3=y 11 BR2_PACKAGE_SETOOLS=y 12 BR2_TARGET_ROOTFS_CPIO=y 13 """ 14 15 def base_test_run(self): 16 cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") 17 self.emulator.boot(arch="armv5", kernel="builtin", 18 options=["-initrd", cpio_file]) 19 self.emulator.login() 20 21 22class TestSELinuxExtraModules(TestSELinuxInfra): 23 config = TestSELinuxInfra.config + \ 24 """ 25 BR2_REFPOLICY_EXTRA_MODULES="ntp tor" 26 """ 27 28 def test_run(self): 29 TestSELinuxInfra.base_test_run(self) 30 31 out, ret = self.emulator.run("seinfo -t ntpd_t", 15) 32 self.assertEqual(ret, 0) 33 self.assertEqual(out[2].strip(), "ntpd_t") 34 35 out, ret = self.emulator.run("seinfo -t tor_t", 15) 36 self.assertEqual(ret, 0) 37 self.assertEqual(out[2].strip(), "tor_t") 38 39 40class TestSELinuxExtraModulesDirs(TestSELinuxInfra): 41 config = TestSELinuxInfra.config + \ 42 """ 43 BR2_REFPOLICY_EXTRA_MODULES_DIRS="{}" 44 """.format(infra.filepath("tests/core/test_selinux/extra_modules")) 45 46 def test_run(self): 47 TestSELinuxInfra.base_test_run(self) 48 49 out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15) 50 self.assertEqual(ret, 0) 51 self.assertEqual(out[2].strip(), "buildroot_test_t") 52 53 54class TestSELinuxCustomGit(TestSELinuxInfra): 55 config = TestSELinuxInfra.config + \ 56 """ 57 BR2_PACKAGE_REFPOLICY_CUSTOM_GIT=y 58 BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_URL="https://github.com/SELinuxProject/refpolicy.git" 59 BR2_PACKAGE_REFPOLICY_CUSTOM_REPO_VERSION="RELEASE_2_20200818" 60 """ 61 62 def test_run(self): 63 pass 64 65 66class TestSELinuxPackage(TestSELinuxInfra): 67 br2_external = [infra.filepath("tests/core/test_selinux/br2_external")] 68 config = TestSELinuxInfra.config + \ 69 """ 70 BR2_PACKAGE_SELINUX_TEST=y 71 """ 72 73 def test_run(self): 74 TestSELinuxInfra.base_test_run(self) 75 76 out, ret = self.emulator.run("seinfo -t ntpd_t", 15) 77 self.assertEqual(ret, 0) 78 self.assertEqual(out[2].strip(), "ntpd_t") 79 80 out, ret = self.emulator.run("seinfo -t tor_t", 15) 81 self.assertEqual(ret, 0) 82 self.assertEqual(out[2].strip(), "tor_t") 83 84 out, ret = self.emulator.run("seinfo -t buildroot_test_t", 15) 85 self.assertEqual(ret, 0) 86 self.assertEqual(out[2].strip(), "buildroot_test_t") 87