2
0
mirror of https://gitlab.com/apparmor/apparmor synced 2025-08-28 12:58:07 +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 import unittest
from common_test import AAParseTest, setup_regex_tests from common_test import AATest, setup_all_loops
class AAParsePtraceTest(AAParseTest): from apparmor.rule.ptrace import PtraceRule
def setUp(self):
self.parse_function = aa.parse_ptrace_rule class AAParsePtraceTest(AATest):
def _run_test(self, params, expected):
rule_obj = PtraceRule.parse(params)
self.assertEqual(rule_obj.get_clean(), expected)
tests = [ tests = [
('ptrace,', 'ptrace base keyword rule'), ('ptrace,', 'ptrace,'),
('ptrace (readby),', 'ptrace readby rule'), ('ptrace (readby),', 'ptrace readby,'),
('ptrace (trace),', 'ptrace trace rule'), ('ptrace (trace),', 'ptrace trace,'),
('ptrace (trace read),', 'ptrace multi-perm rule'), ('ptrace (trace read),', 'ptrace (read trace),'),
('ptrace r,', 'ptrace r rule'), ('ptrace r,', 'ptrace r,'),
('ptrace w,', 'ptrace w rule'), ('ptrace w,', 'ptrace w,'),
('ptrace rw,', 'ptrace rw rule'), ('ptrace rw,', 'ptrace rw,'),
('ptrace read peer=foo,', 'ptrace peer rule 1'), ('ptrace read peer=foo,', 'ptrace read peer=foo,'),
('ptrace (trace read) peer=/usr/bin/bar,', 'ptrace peer rule 2'), ('ptrace (trace read) peer=/usr/bin/bar,', 'ptrace (read trace) peer=/usr/bin/bar,'),
('ptrace wr peer=/sbin/baz,', 'ptrace peer rule 3'), ('ptrace wr peer=/sbin/baz,', 'ptrace wr peer=/sbin/baz,'),
] ]
setup_all_loops(__name__)
if __name__ == '__main__': if __name__ == '__main__':
setup_regex_tests(AAParsePtraceTest)
unittest.main(verbosity=2) unittest.main(verbosity=2)

View File

@ -14,7 +14,7 @@ import unittest
from common_test import AATest, setup_all_loops from common_test import AATest, setup_all_loops
from apparmor.common import AppArmorBug, AppArmorException 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): class AARegexTest(AATest):
@ -318,7 +318,7 @@ class AARegexPtrace(AARegexTest):
'''Tests for RE_PROFILE_PTRACE''' '''Tests for RE_PROFILE_PTRACE'''
def AASetup(self): def AASetup(self):
self.regex = aa.RE_PROFILE_PTRACE self.regex = RE_PROFILE_PTRACE
tests = [ tests = [
# audit allow rule rule details comment # audit allow rule rule details comment