2
0
mirror of https://gitlab.com/apparmor/apparmor synced 2025-08-22 01:57:43 +00:00

Adjust test-ptrace_parse.py to use PtraceRule

The tests in test-ptrace_parse.py used aa.parse_ptrace_rule(), which is
based on Raw_Ptrace_Rule (= regex check + "just store it").

This patch changes the tests to test against PtraceRule.get_clean().
Since get_clean does some cleanups, the expected result slightly differs
from the original rule.

Finally switch to the AATest class and setup_all_loops() we use in most
tests.


Also change test-regex_matches.py to import RE_PROFILE_SIGNAL directly
from apparmor.regex instead of apparmor.aa (where it will vanish soon).


Acked-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
Christian Boltz 2015-12-27 01:16:55 +01:00
parent 5d6ca98af6
commit c303214286
2 changed files with 20 additions and 18 deletions

View File

@ -9,27 +9,29 @@
#
# ------------------------------------------------------------------
import apparmor.aa as aa
import unittest
from common_test import AAParseTest, setup_regex_tests
from common_test import AATest, setup_all_loops
class AAParsePtraceTest(AAParseTest):
def setUp(self):
self.parse_function = aa.parse_ptrace_rule
from apparmor.rule.ptrace import PtraceRule
class AAParsePtraceTest(AATest):
def _run_test(self, params, expected):
rule_obj = PtraceRule.parse(params)
self.assertEqual(rule_obj.get_clean(), expected)
tests = [
('ptrace,', 'ptrace base keyword rule'),
('ptrace (readby),', 'ptrace readby rule'),
('ptrace (trace),', 'ptrace trace rule'),
('ptrace (trace read),', 'ptrace multi-perm rule'),
('ptrace r,', 'ptrace r rule'),
('ptrace w,', 'ptrace w rule'),
('ptrace rw,', 'ptrace rw rule'),
('ptrace read peer=foo,', 'ptrace peer rule 1'),
('ptrace (trace read) peer=/usr/bin/bar,', 'ptrace peer rule 2'),
('ptrace wr peer=/sbin/baz,', 'ptrace peer rule 3'),
('ptrace,', 'ptrace,'),
('ptrace (readby),', 'ptrace readby,'),
('ptrace (trace),', 'ptrace trace,'),
('ptrace (trace read),', 'ptrace (read trace),'),
('ptrace r,', 'ptrace r,'),
('ptrace w,', 'ptrace w,'),
('ptrace rw,', 'ptrace rw,'),
('ptrace read peer=foo,', 'ptrace read peer=foo,'),
('ptrace (trace read) peer=/usr/bin/bar,', 'ptrace (read trace) peer=/usr/bin/bar,'),
('ptrace wr peer=/sbin/baz,', 'ptrace wr peer=/sbin/baz,'),
]
setup_all_loops(__name__)
if __name__ == '__main__':
setup_regex_tests(AAParsePtraceTest)
unittest.main(verbosity=2)

View File

@ -14,7 +14,7 @@ import unittest
from common_test import AATest, setup_all_loops
from apparmor.common import AppArmorBug, AppArmorException
from apparmor.regex import strip_quotes, parse_profile_start_line, re_match_include, RE_PROFILE_START, RE_PROFILE_CAP, RE_PROFILE_SIGNAL
from apparmor.regex import strip_quotes, parse_profile_start_line, re_match_include, RE_PROFILE_START, RE_PROFILE_CAP, RE_PROFILE_PTRACE, RE_PROFILE_SIGNAL
class AARegexTest(AATest):
@ -318,7 +318,7 @@ class AARegexPtrace(AARegexTest):
'''Tests for RE_PROFILE_PTRACE'''
def AASetup(self):
self.regex = aa.RE_PROFILE_PTRACE
self.regex = RE_PROFILE_PTRACE
tests = [
# audit allow rule rule details comment