[apparmor] [patch] Change utils/test/Makefile to use the in-tree libapparmor

Christian Boltz apparmor at cboltz.de
Wed Sep 9 12:32:15 UTC 2015


Hello,

this patch changes utils/test/Makefile to use the in-tree libapparmor.

It also adds support for the USE_SYSTEM variable, which means:
- test against the in-tree libapparmor and python modules by default
- test against the system libapparmor and python modules if USE_SYSTEM
  is set

The old behaviour was a mix of both - it always used the in-tree python
modules and the system libapparmor.

For obvious reasons, you'll need to build libapparmor before running the
tests (unless you specify USE_SYSTEM=1 as parameter to make check).


This patch also means Steve can no longer argue it's hard to test my
patches because he has an old libapparmor installed - therefore I expect
quicker reviews in the future ;-)


I propose this patch for trunk and 2.9.


[ 85-utils-test-with-in-tree-libapparmor.diff ]

=== modified file ./utils/test/Makefile
--- utils/test/Makefile 2015-01-24 19:10:51.725549000 +0100
+++ utils/test/Makefile 2015-09-09 14:29:16.916162945 +0200
@@ -20,6 +20,25 @@
 
 include $(COMMONDIR)/Make.rules
 
+ifdef USE_SYSTEM
+    LD_LIBRARY_PATH=
+    PYTHONPATH=
+else
+    LD_LIBRARY_PATH=../../libraries/libapparmor/src/.libs/
+    PYTHONPATH=..
+endif
+
+.PHONY: __libapparmor
+__libapparmor:
+ifndef USE_SYSTEM
+       @if [ ! -f $(LD_LIBRARY_PATH)libapparmor.so ]; then \
+               echo "error: $(LD_LIBRARY_PATH)libapparmor.so is missing. Pick one of these possible solutions:" 1>&2; \
+               echo "  1) Build against the in-tree libapparmor by building it first and then trying again. See the top-level README for help." 1>&2; \
+               echo "  2) Build against the system libapparmor by adding USE_SYSTEM=1 to your make command." 1>&2; \
+               return 1; \
+       fi
+endif
+
 COVERAGE_OMIT=test-*.py,common_test.py
 ifneq ($(COVERAGE_OUT), )
 HTML_COVR_ARGS=-d $(COVERAGE_OUT)
@@ -40,11 +59,11 @@
 clean:
        rm -rf __pycache__/ .coverage htmlcov
 
-check:
-       export PYTHONPATH=.. ; $(foreach test, $(wildcard test-*.py), $(call pyalldo, $(test)))
+check: __libapparmor
+       export PYTHONPATH=$(PYTHONPATH) ; export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH) ; $(foreach test, $(wildcard test-*.py), $(call pyalldo, $(test)))
 
-.coverage: $(wildcard ../aa-* ../apparmor/*.py test-*.py)
-       export PYTHONPATH=.. ; $(COVERAGE_IGNORE_FAILURES_CMD) ; $(foreach test, $(wildcard test-*.py), $(PYTHON) -m coverage run --branch -p $(test); )
+.coverage: $(wildcard ../aa-* ../apparmor/*.py test-*.py) __libapparmor
+       export PYTHONPATH=$(PYTHONPATH) ; export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH); $(COVERAGE_IGNORE_FAILURES_CMD) ; $(foreach test, $(wildcard test-*.py), $(PYTHON) -m coverage run --branch -p $(test); )
        $(PYTHON) -m coverage combine
 
 coverage: .coverage



Regards,

Christian Boltz
-- 
[ACPI] Du kannst da Deinen Power-Knopf konfigurieren wie Du willst.
Du kannst den auch so konfigurieren, daß der PC anfängt zu singen ...
[Ekkard Gerlach in suse-linux]




More information about the AppArmor mailing list