Use the in-tree parser, by default, or use the system parser when USE_SYSTEM is set.
If the parser cannot be found, print an error message before running the tests. Signed-off-by: Tyler Hicks <[email protected]> --- tests/regression/apparmor/Makefile | 55 +++++++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 15 deletions(-) diff --git a/tests/regression/apparmor/Makefile b/tests/regression/apparmor/Makefile index 1c4d01a..543baf7 100644 --- a/tests/regression/apparmor/Makefile +++ b/tests/regression/apparmor/Makefile @@ -7,6 +7,14 @@ # License. ifdef USE_SYSTEM + # use the system parser + APPARMOR_PARSER = $(shell which apparmor_parser) + ifeq ($(strip $(APPARMOR_PARSER)),) + PARSER_ERROR_MESSAGE = Unable to find apparmor_parser installed on this \ + system; either install the apparmor package, set the \ + APPARMOR_PARSER variable manually, or use the in-tree parser) + endif + # use the system libapparmor headers and library LIBAPPARMOR = $(shell if pkg-config --exists libapparmor ; then \ pkg-config --silence-errors --libs libapparmor ; \ @@ -14,22 +22,33 @@ ifdef USE_SYSTEM echo -lapparmor ; \ fi ) ifeq ($(strip $(LIBAPPARMOR)),) - ERROR_MESSAGE = Unable to find libapparmor installed on this system; either \ - install libapparmor devel packages, set the LIBAPPARMOR variable \ - manually, or build against in-tree libapparmor) + LIBAPPARMOR_ERROR_MESSAGE = Unable to find libapparmor installed on this \ + system; either install libapparmor devel packages, set the \ + LIBAPPARMOR variable manually, or build against in-tree \ + libapparmor) endif # LIBAPPARMOR not set LDLIBS += $(LIBAPPARMOR) else # !USE_SYSTEM + # use the in-tree parser + APPARMOR_PARSER = ../../../parser/apparmor_parser + ifeq ($(realpath $(APPARMOR_PARSER)),) + PARSER_ERROR_MESSAGE = $(APPARMOR_PARSER) is missing; either build the \ + in-tree parser first and then try again (see the top-level README \ + for help) or use the system parser by adding USE_SYSTEM=1 to your \ + make command.) + endif + # use in-tree versions LIBAPPARMOR_SRC := ../../../libraries/libapparmor/ LIBAPPARMOR_INCLUDE = $(LIBAPPARMOR_SRC)/include LIBAPPARMOR_PATH := $(LIBAPPARMOR_SRC)/src/.libs/ ifeq ($(realpath $(LIBAPPARMOR_PATH)/libapparmor.a),) - ERROR_MESSAGE = $(LIBAPPARMOR_PATH)/libapparmor.a is missing; either build against \ - the in-tree libapparmor by building it first and then trying again \ - (see the top-level README for help) or build against the system \ - libapparmor by adding USE_SYSTEM=1 to your make command.) + LIBAPPARMOR_ERROR_MESSAGE = $(LIBAPPARMOR_PATH)/libapparmor.a is missing; \ + either build against the in-tree libapparmor by building it first \ + and then trying again (see the top-level README for help) or build \ + against the system libapparmor by adding USE_SYSTEM=1 to your make \ + command.) endif CFLAGS += -L$(LIBAPPARMOR_PATH) -I$(LIBAPPARMOR_INCLUDE) @@ -172,11 +191,17 @@ TESTS=access \ # Tests that can crash the kernel should be placed here RISKY_TESTS= -.PHONY: libapparmor_check -.SILENT: libapparmor_check +.PHONY: parser_check libapparmor_check +.SILENT: parser_check libapparmor_check +parser_check: + @if [ -n "$(PARSER_ERROR_MESSAGE)" ] ; then \ + echo "$(PARSER_ERROR_MESSAGE)" 1>&2 ; \ + return 1 ; \ + fi + libapparmor_check: - @if [ -n "$(ERROR_MESSAGE)" ] ; then \ - echo "$(ERROR_MESSAGE)" 1>&2 ; \ + @if [ -n "$(LIBAPPARMOR_ERROR_MESSAGE)" ] ; then \ + echo "$(LIBAPPARMOR_ERROR_MESSAGE)" 1>&2 ; \ return 1 ; \ fi @@ -197,7 +222,7 @@ dbus_message: dbus_message.c dbus_common.o dbus_service: dbus_message dbus_service.c dbus_common.o ${CC} ${CFLAGS} ${LDFLAGS} $(filter-out dbus_message, $^) -o dbus_service ${LDLIBS} $(shell pkg-config --cflags --libs dbus-1) -tests: all +tests: parser_check all @if [ `whoami` = "root" ] ;\ then \ rc=0; \ @@ -205,7 +230,7 @@ tests: all do \ echo ;\ echo "running $$i" ;\ - bash $$i.sh ;\ + APPARMOR_PARSER=$(APPARMOR_PARSER) bash $$i.sh ;\ if [ $$? -ne 0 ] ; then \ rc=1;\ fi;\ @@ -216,7 +241,7 @@ tests: all exit 1;\ fi -alltests: all +alltests: parser_check all @if [ `whoami` = "root" ] ;\ then \ rc=0; \ @@ -224,7 +249,7 @@ alltests: all do \ echo ;\ echo "running $$i" ;\ - bash $$i.sh ;\ + APPARMOR_PARSER=$(APPARMOR_PARSER) bash $$i.sh ;\ if [ $$? -ne 0 ] ; then \ rc=1;\ fi;\ -- 1.8.3.2 -- AppArmor mailing list [email protected] Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/apparmor
