-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.am
57 lines (42 loc) · 1.63 KB
/
Makefile.am
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
SUBDIRS = src testlibs test
EXTRA_DIST = bootstrap scripts hadoop
RESULTS_FOLDER=test/results
COVERAGE_BEFORE_INFO_FILE=test/results/coverage.before.info
COVERAGE_AFTER_INFO_FILE=test/results/coverage.after.info
COVERAGE_FULL_INFO_FILE=test/results/coverage.full.info
COVERAGE_INFO_FILE=test/results/coverage.info
COVERAGE_HTML_FOLDER=test/results/html
GTEST_OUTPUT_FOLDER=test/results/gtest
GTEST_OUTPUT_FOLDER_REL=results/gtest
GTEST_GCOVR_FILE=test/results/coverage.xml
clean-coverage:
rm -rf $(COVERAGE_OUTPUT_FOLDER) $(GTEST_OUTPUT_FOLDER) $(RESULTS_FOLDER)
find . -type f -iname '*.gc*' -delete
if TESTS_ENABLED
$(RESULTS_FOLDER):
mkdir -p $@
$(COVERAGE_OUTPUT_FOLDER):
mkdir -p $@
$(COVERAGE_HTML_FOLDER):
mkdir -p $@
$(COVERAGE_BEFORE_INFO_FILE): all $(RESULTS_FOLDER)
lcov -d src -c -i -o $@
$(COVERAGE_AFTER_INFO_FILE): $(COVERAGE_BEFORE_INFO_FILE)
rm -rf $(GTEST_OUTPUT_FOLDER)
mkdir -p $(GTEST_OUTPUT_FOLDER)
GTEST_OUTPUT="xml:$(GTEST_OUTPUT_FOLDER_REL)/" make check
lcov -d src -c -o $@
$(COVERAGE_FULL_INFO_FILE): $(COVERAGE_AFTER_INFO_FILE) $(COVERAGE_BEFORE_INFO_FILE)
lcov -a $(COVERAGE_BEFORE_INFO_FILE) -a $(COVERAGE_AFTER_INFO_FILE) -o $@
$(COVERAGE_INFO_FILE): $(COVERAGE_FULL_INFO_FILE)
lcov -o $@ -r $< '/usr/*'
coverage: $(COVERAGE_INFO_FILE) $(COVERAGE_HTML_FOLDER)
-gcovr -x --xml-pretty -o test/results/coverage.xml -e `pwd`'/test*' \
-e '/usr*' -e `dirname $$PWD`'/testlibs/*' -e `pwd`'/mocks/*'
genhtml -o $(COVERAGE_HTML_FOLDER) $(COVERAGE_INFO_FILE)
else
coverage:
@echo "Coverage information requires configuration with tests enabled: './configure --enable-tests CXXFLAGS='"
false
endif
.PHONY: coverage