test_selinux.py 2.6 KB

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