1
1
RM := rm -rf
2
2
DHCP6RELAY_TARGET := dhcp6relay
3
+ DHCP6RELAY_TEST_TARGET := dhcp6relay-test
3
4
CP := cp
4
5
MKDIR := mkdir
5
6
MV := mv
7
+ FIND := find
8
+ GCOVR := gcovr
9
+ GCOV_FLAGS := -fprofile-use -fprofile-arcs -ftest-coverage -fprofile-generate
6
10
override LDLIBS += -levent -lhiredis -lswsscommon -pthread -lboost_thread -lboost_system
11
+ override LDLIBS_TEST += -lgtest_main -lgtest -pthread -lstdc++fs
7
12
override CPPFLAGS += -Wall -std=c++17 -fPIE -I/usr/include/swss
8
13
override CPPFLAGS += -MMD -MP -MF"$(@ :% .o=% .d)" -MT"$(@ ) "
9
14
PWD := $(shell pwd)
10
15
11
- all : $(DHCP6RELAY_TARGET )
16
+ test-targets : CPP_FLAGS = -O0 -Wall -fmessage-length=0 -fPIC $(GCOV_FLAGS )
17
+
18
+ all : $(DHCP6RELAY_TARGET ) $(DHCP6RELAY_TEST_TARGET )
12
19
13
20
ifneq ($(MAKECMDGOALS ) ,clean)
14
21
-include $(OBJS :% .o=% .d)
15
22
endif
16
23
17
24
-include src/subdir.mk
25
+ -include test/subdir.mk
18
26
19
27
$(DHCP6RELAY_TARGET ) : $(OBJS )
20
28
$(CXX ) $(LDFLAGS ) $^ $(LDLIBS ) -o $@
21
29
30
+ $(DHCP6RELAY_TEST_TARGET ) : $(OBJS_DHCP6RELAY_TEST )
31
+ $(CC ) -lgcov --coverage -o " $( DHCP6RELAY_TEST_TARGET) " $(CPP_FLAGS ) $(OBJS_DHCP6RELAY_TEST ) $(LDLIBS ) $(LDLIBS_TEST )
32
+ ./$(DHCP6RELAY_TEST_TARGET )
33
+ $(GCOVR ) -r ./ --html --html-details -o $(DHCP6RELAY_TEST_TARGET ) -result.html
34
+ $(GCOVR ) -r ./ --xml-pretty -o $(DHCP6RELAY_TEST_TARGET ) -result.xml
35
+
36
+
22
37
install :
23
38
$(MKDIR ) -p $(DESTDIR ) /usr/sbin
24
39
$(MV ) $(DHCP6RELAY_TARGET ) $(DESTDIR ) /usr/sbin
@@ -28,7 +43,10 @@ deinstall:
28
43
$(RM ) -rf $(DESTDIR ) /usr/sbin
29
44
30
45
clean :
31
- -$(RM ) $(EXECUTABLES ) $(OBJS:%.o=%.d ) $(OBJS ) $(DHCP6RELAY_TARGET )
46
+ -$(RM ) $(EXECUTABLES ) $(OBJS:%.o=%.d ) $(OBJS ) $(DHCP6RELAY_TARGET ) $(DHCP6RELAY_TEST_TARGET ) $(OBJS_DHCP6RELAY_TEST ) * .html * .xml
47
+ $(FIND ) . -name * .gcda -exec rm -f {} \;
48
+ $(FIND ) . -name * .gcno -exec rm -f {} \;
49
+ $(FIND ) . -name * .gcov -exec rm -f {} \;
32
50
-@echo ' '
33
51
34
52
.PHONY : all clean dependents
0 commit comments