[apparmor] [PATCH 3/8] utils: Add confdir env variable to aa.py for in-tree testing

Tyler Hicks tyhicks at canonical.com
Wed Feb 8 22:01:40 UTC 2017


Instead of hard-coding the location of logprof.conf and other utils
related configuration files to /etc/apparmor/, this patch looks for the
"APPARMOR_PY_CONFDIR" environment variable and, when set, uses its value
for the configuration directory.

This allows for the make check target to use the in-tree config file,
profiles, and parser by default. To override this behavior, the
USE_SYSTEM make variable needs to be set like so:

  $ make USE_SYSTEM=1 -C utils check

The APPARMOR_PY_CONFDIR should be considered somewhat user-facing,
although undocumented at this time.

Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
Cc: Christian Boltz <apparmor at cboltz.de>
---
 utils/apparmor/aa.py | 2 +-
 utils/test/Makefile  | 6 ++++--
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/utils/apparmor/aa.py b/utils/apparmor/aa.py
index eecf8c7..9450baa 100644
--- a/utils/apparmor/aa.py
+++ b/utils/apparmor/aa.py
@@ -73,7 +73,7 @@ _ = init_translation()
 # Setup logging incase of debugging is enabled
 debug_logger = DebugLogger('aa')
 
-CONFDIR = '/etc/apparmor'
+CONFDIR = os.getenv('APPARMOR_PY_CONFDIR', '/etc/apparmor')
 
 # The database for severity
 sev_db = None
diff --git a/utils/test/Makefile b/utils/test/Makefile
index 014c094..f5273e3 100644
--- a/utils/test/Makefile
+++ b/utils/test/Makefile
@@ -23,11 +23,13 @@ include $(COMMONDIR)/Make.rules
 ifdef USE_SYSTEM
     LD_LIBRARY_PATH=
     PYTHONPATH=
+    CONFDIR=
 else
     # PYTHON_DIST_BUILD_PATH based on libapparmor/swig/python/test/Makefile.am
     PYTHON_DIST_BUILD_PATH = ../../libraries/libapparmor/swig/python/build/$$($(PYTHON) -c "import distutils.util; import platform; print(\"lib.%s-%s\" %(distutils.util.get_platform(), platform.python_version()[:3]))")
     LD_LIBRARY_PATH=../../libraries/libapparmor/src/.libs/
     PYTHONPATH=..:$(PYTHON_DIST_BUILD_PATH)
+    CONFDIR=$(CURDIR)
 endif
 
 .PHONY: __libapparmor
@@ -62,10 +64,10 @@ clean:
 	rm -rf __pycache__/ .coverage htmlcov
 
 check: __libapparmor
-	export PYTHONPATH=$(PYTHONPATH) ; export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) ; export LC_ALL=C; $(foreach test, $(wildcard test-*.py), echo ; echo === $(test) === ; $(call pyalldo, $(test)))
+	export PYTHONPATH=$(PYTHONPATH) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) LC_ALL=C APPARMOR_PY_CONFDIR=$(CONFDIR) ; $(foreach test, $(wildcard test-*.py), echo ; echo === $(test) === ; $(call pyalldo, $(test)))
 
 .coverage: $(wildcard ../aa-* ../apparmor/*.py test-*.py) __libapparmor
-	export PYTHONPATH=$(PYTHONPATH) ; export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH); export LC_ALL=C; $(COVERAGE_IGNORE_FAILURES_CMD) ; $(foreach test, $(wildcard test-*.py), echo ; echo === $(test) === ; $(PYTHON) -m coverage run --branch -p $(test); )
+	export PYTHONPATH=$(PYTHONPATH) LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) LC_ALL=C APPARMOR_PY_CONFDIR=$(CONFDIR) ; $(COVERAGE_IGNORE_FAILURES_CMD) ; $(foreach test, $(wildcard test-*.py), echo ; echo === $(test) === ; $(PYTHON) -m coverage run --branch -p $(test); )
 	$(PYTHON) -m coverage combine
 
 coverage: .coverage
-- 
2.7.4




More information about the AppArmor mailing list