From c3032142867bc7db274c79c27231b41fdec1c2e8 Mon Sep 17 00:00:00 2001 From: Christian Boltz Date: Sun, 27 Dec 2015 01:16:55 +0100 Subject: [PATCH] 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 --- utils/test/test-ptrace_parse.py | 34 +++++++++++++++++--------------- utils/test/test-regex_matches.py | 4 ++-- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/utils/test/test-ptrace_parse.py b/utils/test/test-ptrace_parse.py index d7dea4790..b83da5031 100644 --- a/utils/test/test-ptrace_parse.py +++ b/utils/test/test-ptrace_parse.py @@ -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) diff --git a/utils/test/test-regex_matches.py b/utils/test/test-regex_matches.py index 8d1efb00d..3059ebf19 100644 --- a/utils/test/test-regex_matches.py +++ b/utils/test/test-regex_matches.py @@ -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