[apparmor] [patch] [3/7] Adjust test-ptrace_parse.py to use PtraceRule

Christian Boltz apparmor at cboltz.de
Tue Dec 8 19:32:41 UTC 2015


Hello,

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).



[ 30-change-test-ptrace_parse-to-PtraceRule.diff ]

--- utils/test/test-ptrace_parse.py     2014-10-15 20:19:34.705810000 +0200
+++ utils/test/test-ptrace_parse.py     2015-11-23 23:35:50.949678241 +0100
@@ -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)
--- utils/test/test-regex_matches.py    2015-11-23 21:52:31.595734935 +0100
+++ utils/test/test-regex_matches.py    2015-11-23 23:39:24.316157430 +0100
@@ -14,7 +14,7 @@
 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 @@
     '''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


Regards,

Christian Boltz
-- 
Benutzerfreundlichkeit
Der Benutzer hat zum Admin freundlich zu sein. [Thorsten Fenk]




More information about the AppArmor mailing list