This patch adds a parser make variable and a make target for building
the compiler with coverage compilation flags. With this, coverage
information can be generated by running tests/test suites against the
built parser and run through tools like gcovr.
Patch History:
v1: initial version
v2: refreshed/no change
v3: address feedback from sarnold:
- mark coverage target as phony
- correct missing '.' typo in clean target
- make coverage extensions consistent in clean targets
Signed-off-by: Steve Beattie <[email protected]>
---
parser/Makefile | 9 ++++++++-
parser/libapparmor_re/Makefile | 2 +-
parser/tst/Makefile | 1 +
3 files changed, 10 insertions(+), 2 deletions(-)
Index: b/parser/Makefile
===================================================================
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -51,6 +51,9 @@ CFLAGS = -g -O2 -pipe
ifdef DEBUG
CFLAGS += -pg -D DEBUG
endif
+ifdef COVERAGE
+CFLAGS = -g -pg -fprofile-arcs -ftest-coverage
+endif
endif #CFLAGS
LIBAPPARMOR_PATH=../libraries/libapparmor/src/
@@ -149,6 +152,9 @@ indep: docs
all: arch indep
+.PHONY: coverage
+coverage:
+ $(MAKE) clean apparmor_parser COVERAGE=1
apparmor_parser: $(OBJECTS) $(AAREOBJECTS)
$(CXX) $(LDFLAGS) $(EXTRA_CFLAGS) -o $@ $(OBJECTS) $(LIBS) \
@@ -302,7 +308,8 @@ install-indep:
.SILENT: clean
.PHONY: clean
clean: _clean
- rm -f core core.* *.o *.s *.a *~
+ rm -f core core.* *.o *.s *.a *~ *.gcda *.gcno
+ rm -f gmon.out
rm -f $(TOOLS) $(TESTS)
rm -f $(LEX_C_FILES)
rm -f $(YACC_C_FILES)
Index: b/parser/libapparmor_re/Makefile
===================================================================
--- a/parser/libapparmor_re/Makefile
+++ b/parser/libapparmor_re/Makefile
@@ -29,4 +29,4 @@ parse.cc : parse.y parse.h flex-tables.h
${BISON} -o $@ $<
clean:
- rm -f *.o parse.cc ${TARGET}
+ rm -f *.o parse.cc ${TARGET} *.gcda *.gcno
Index: b/parser/tst/Makefile
===================================================================
--- a/parser/tst/Makefile
+++ b/parser/tst/Makefile
@@ -59,3 +59,4 @@ $(PARSER):
clean:
find $(GEN_TRANS_DIRS) -type f | xargs rm -f
+ rm -f gmon.out
--
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/apparmor