mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 00:14:44 +01:00
utils: test: expand mechanism for ignoring profiles in tests
The utils cannot parse some of the newer profile constructs yet, so generalize a pre-existing mechanism for skipping profiles to use that mechanism in the other tests that need it Signed-off-by: Ryan Lee <ryan.lee@canonical.com>
This commit is contained in:
parent
0e8377cde9
commit
df0358062d
5 changed files with 18 additions and 14 deletions
|
@ -24,6 +24,13 @@ import unittest
|
||||||
# print("Please press the Y button on the keyboard.")
|
# print("Please press the Y button on the keyboard.")
|
||||||
# self.assertEqual(apparmor.common.readkey().lower(), 'y', 'Error reading key from shell!')
|
# self.assertEqual(apparmor.common.readkey().lower(), 'y', 'Error reading key from shell!')
|
||||||
|
|
||||||
|
# If a profile can't be parsed by the tools, add it to skip_active_profiles or skip_extra_profiles.
|
||||||
|
# Add only the filename (without path), for example 'usr.bin.foo'.
|
||||||
|
# These skip lists are meant as a temporary solution, and should be empty on release.
|
||||||
|
skip_active_profiles = []
|
||||||
|
|
||||||
|
skip_extra_profiles = []
|
||||||
|
|
||||||
|
|
||||||
class AATest(unittest.TestCase):
|
class AATest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -16,7 +16,7 @@ import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
# import apparmor.aa as aa # see the setup_aa() call for details
|
# import apparmor.aa as aa # see the setup_aa() call for details
|
||||||
from common_test import AATest, read_file, setup_all_loops # , setup_aa
|
from common_test import AATest, read_file, setup_all_loops, skip_active_profiles # , setup_aa
|
||||||
|
|
||||||
|
|
||||||
class TestLogprof(AATest):
|
class TestLogprof(AATest):
|
||||||
|
@ -35,7 +35,8 @@ class TestLogprof(AATest):
|
||||||
|
|
||||||
# copy the local profiles to the test directory
|
# copy the local profiles to the test directory
|
||||||
self.profile_dir = self.tmpdir + '/profiles'
|
self.profile_dir = self.tmpdir + '/profiles'
|
||||||
shutil.copytree('../../profiles/apparmor.d/', self.profile_dir, symlinks=True)
|
shutil.copytree('../../profiles/apparmor.d/', self.profile_dir,
|
||||||
|
symlinks=True, ignore=shutil.ignore_patterns(*skip_active_profiles))
|
||||||
|
|
||||||
def AATeardown(self):
|
def AATeardown(self):
|
||||||
self._terminate()
|
self._terminate()
|
||||||
|
|
|
@ -18,7 +18,7 @@ import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import apparmor.aa as apparmor
|
import apparmor.aa as apparmor
|
||||||
from common_test import AATest, read_file, write_file, setup_aa, setup_all_loops
|
from common_test import AATest, read_file, write_file, setup_aa, setup_all_loops, skip_active_profiles
|
||||||
|
|
||||||
# Use the same python as the one this script is being run with
|
# Use the same python as the one this script is being run with
|
||||||
python_interpreter = sys.executable
|
python_interpreter = sys.executable
|
||||||
|
@ -34,7 +34,8 @@ class MinitoolsTest(AATest):
|
||||||
# copy the local profiles to the test directory
|
# copy the local profiles to the test directory
|
||||||
# Should be the set of cleanprofile
|
# Should be the set of cleanprofile
|
||||||
self.profile_dir = self.tmpdir + '/profiles'
|
self.profile_dir = self.tmpdir + '/profiles'
|
||||||
shutil.copytree('../../profiles/apparmor.d/', self.profile_dir, symlinks=True)
|
shutil.copytree('../../profiles/apparmor.d/', self.profile_dir,
|
||||||
|
symlinks=True, ignore=shutil.ignore_patterns(*skip_active_profiles))
|
||||||
|
|
||||||
apparmor.profile_dir = self.profile_dir
|
apparmor.profile_dir = self.profile_dir
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ from apparmor.rule.alias import AliasRule
|
||||||
from apparmor.rule.boolean import BooleanRule
|
from apparmor.rule.boolean import BooleanRule
|
||||||
from apparmor.rule.include import IncludeRule
|
from apparmor.rule.include import IncludeRule
|
||||||
from apparmor.rule.variable import VariableRule
|
from apparmor.rule.variable import VariableRule
|
||||||
from common_test import AATest, setup_aa, setup_all_loops, write_file
|
from common_test import AATest, setup_aa, setup_all_loops, write_file, skip_active_profiles
|
||||||
|
|
||||||
|
|
||||||
class TestAdd_profile(AATest):
|
class TestAdd_profile(AATest):
|
||||||
|
@ -428,7 +428,9 @@ class AaTest_get_all_merged_variables(AATest):
|
||||||
# load the profiles and abstractions
|
# load the profiles and abstractions
|
||||||
apparmor.aa.profile_dir = self.profile_dir
|
apparmor.aa.profile_dir = self.profile_dir
|
||||||
apparmor.aa.loadincludes()
|
apparmor.aa.loadincludes()
|
||||||
apparmor.aa.read_profiles()
|
# Keep this synced with the list in test-logprof.py and
|
||||||
|
# test-minitools.py
|
||||||
|
apparmor.aa.read_profiles(skip_profiles=skip_active_profiles)
|
||||||
|
|
||||||
def test_unchanged(self):
|
def test_unchanged(self):
|
||||||
self._load_profiles()
|
self._load_profiles()
|
||||||
|
|
|
@ -12,14 +12,7 @@
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import apparmor.aa as aa
|
import apparmor.aa as aa
|
||||||
from common_test import AATest, setup_aa, setup_all_loops
|
from common_test import AATest, setup_aa, setup_all_loops, skip_active_profiles, skip_extra_profiles
|
||||||
|
|
||||||
# If a profile can't be parsed by the tools, add it to skip_active_profiles or skip_extra_profiles.
|
|
||||||
# Add only the filename (without path), for example 'usr.bin.foo'.
|
|
||||||
# These skip lists are meant as a temporary solution, and should be empty on release.
|
|
||||||
skip_active_profiles = []
|
|
||||||
|
|
||||||
skip_extra_profiles = []
|
|
||||||
|
|
||||||
|
|
||||||
class TestFoo(AATest):
|
class TestFoo(AATest):
|
||||||
|
|
Loading…
Add table
Reference in a new issue