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