xref: /btstack/test/Makefile (revision 77da83a6e0831cd2855d128299b208db2d9b25d0)
1
2# Makefile to build and run all tests
3
4SUBDIRS =  \
5	ad_parser \
6	att_db \
7	avdtp \
8	avdtp_util \
9	base64 \
10	ble_client \
11	btstack_link_key_db \
12	btstack_memory \
13	crypto \
14	des_iterator \
15	flash_tlv \
16	gap \
17	gatt_client \
18	gatt_server \
19	gatt_service \
20	hfp \
21	hid_parser \
22	le_device_db_tlv \
23	linked_list \
24	map_test \
25	mesh \
26	obex \
27	pts \
28	ring_buffer \
29	sdp \
30	sdp_client \
31	security_manager \
32	tlv_posix \
33	embedded \
34
35# not testing anything in source tree
36#	maths \
37# no unit tests
38#	embedded \
39#	gatt_server \
40# mixes classic with ble
41#    flash_tlv - contains btstack_linked_key_db tests
42# hangs on buildbot (no output for 20 minutes -> abort)
43#	security_manager_sc
44
45SUBDIRS_BLE = \
46	ad_parser \
47	att_db \
48	ble_client \
49	btstack_memory \
50	crypto \
51	gap \
52	gatt_client \
53	gatt_service \
54	hid_parser \
55	le_device_db_tlv \
56	linked_list \
57	ring_buffer \
58    gatt_server \
59    security_manager \
60    embedded \
61# test fails
62
63# not unit-tests
64# avrcp \
65# map_client \
66# sbc \
67#	gatt_server \
68
69.PHONY: coverage coverage-sm-sc.info coverage-pts.info
70
71subdirs:
72	echo Building all tests
73	@set -e; \
74	for dir in $(SUBDIRS); do \
75	  $(MAKE) -C $$dir; \
76	done
77
78clean:
79	echo Clean all test
80	@set -e; \
81	for dir in $(SUBDIRS); do \
82	  $(MAKE) -C $$dir clean; \
83	done
84
85test:
86	echo Run all test
87	@set -e; \
88	for dir in $(SUBDIRS); do \
89	  $(MAKE) -C $$dir test; \
90	done
91
92test-ble:
93	echo Run all BLE tests
94	@set -e; \
95	for dir in $(SUBDIRS_BLE); do \
96	  $(MAKE) -C $$dir test; \
97	done
98
99
100coverage-pts.info:
101	# download pts coverage and fix paths
102	curl https://bluekitchen-gmbh.com/btstack/develop/coverage-pts.info | sed "s|/Users/mringwal/buildbot-worker/auto-pts/btstack|`realpath ..`|" > coverage-pts.info
103
104coverage-sm-sc.info:
105	# download pts coverage and fix paths
106	curl https://bluekitchen-gmbh.com/btstack/develop/coverage-sm-sc.info | sed "s|/Users/mringwal/buildbot-worker/test-develop-sm-sc/build|`realpath ..`|" > coverage-sm-sc.info
107
108
109coverage-unit.info: subdirs
110	# delete trace data
111	find . -name "*.gcda" -type f -delete
112	# run tests
113	$(MAKE) test
114	# collect traces
115	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit.info
116	# demangle
117	python3 coverage_demangle.py coverage-unit.info
118
119coverage-unit-ble.info: subdirs
120	# delete trace data
121	find . -name "*.gcda" -type f -delete
122	# run tests
123	$(MAKE) test-ble
124	# collect traces
125	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit-ble.info
126	# demangle
127	python3 coverage_demangle.py coverage-unit-ble.info
128
129
130coverage-ble.info: coverage-pts.info coverage-sm-sc.info coverage-unit-ble.info
131	# combine unit-ble and pts
132	lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-sm-sc.info -a coverage-unit-ble.info --output-file coverage-ble.info
133
134
135coverage-bat.info: coverage-ble.info
136	# create bat subset from ble subset
137	./coverage_subset_bat.py coverage-ble.info coverage-bat.info
138
139
140coverage.info: coverage-pts.info coverage-sm-sc.info coverage-unit.info
141	# combine unit-ble and pts
142	lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-sm-sc.info -a coverage-unit.info --output-file coverage.info
143
144
145coverage-all: coverage.info
146	# generate html output
147	genhtml coverage.info     --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage
148
149coverage-bat: coverage-bat.info
150	# generate html output
151	genhtml coverage-bat.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-bat
152
153coverage-ble: coverage-ble.info
154	# generate html output
155	genhtml coverage-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-ble
156
157coverage-unit-ble: coverage-unit-ble.info
158	# generate html output
159	genhtml coverage-unit-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-unit-ble
160
161coverage-sm-sc: coverage-sm-sc.info
162	# generate html output
163	genhtml coverage-sm-sc.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-sm-sc
164
165coverage: coverage-all coverage-ble coverage-bat
166