1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
import unittest
from cpuinfo import *
import helpers
class MockDataSource_enforcing:
@staticmethod
def has_sestatus():
return True
@staticmethod
def sestatus_b():
returncode = 0
output = r'''
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
'''
return returncode, output
class MockDataSource_not_enforcing:
@staticmethod
def has_sestatus():
return True
@staticmethod
def sestatus_b():
returncode = 0
output = r'''
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: eating
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 31
'''
return returncode, output
class MockDataSource_exec_mem_and_heap:
@staticmethod
def has_sestatus():
return True
@staticmethod
def sestatus_b():
returncode = 0
output = r'''
allow_execheap on
allow_execmem on
'''
return returncode, output
class MockDataSource_no_exec_mem_and_heap:
@staticmethod
def has_sestatus():
return True
@staticmethod
def sestatus_b():
returncode = 0
output = r'''
allow_execheap off
allow_execmem off
'''
return returncode, output
class TestSELinux(unittest.TestCase):
def setUp(self):
helpers.backup_data_source(cpuinfo)
self.trace = Trace(False, False)
def tearDown(self):
helpers.restore_data_source(cpuinfo)
def test_enforcing(self):
helpers.monkey_patch_data_source(cpuinfo, MockDataSource_enforcing)
self.assertEqual(True, cpuinfo._is_selinux_enforcing(self.trace))
def test_not_enforcing(self):
helpers.monkey_patch_data_source(cpuinfo, MockDataSource_not_enforcing)
self.assertEqual(False, cpuinfo._is_selinux_enforcing(self.trace))
def test_exec_mem_and_heap(self):
helpers.monkey_patch_data_source(cpuinfo, MockDataSource_exec_mem_and_heap)
self.assertEqual(False, cpuinfo._is_selinux_enforcing(self.trace))
def test_no_exec_mem_and_heap(self):
helpers.monkey_patch_data_source(cpuinfo, MockDataSource_no_exec_mem_and_heap)
self.assertEqual(True, cpuinfo._is_selinux_enforcing(self.trace))
|