xref: /btstack/test/Makefile (revision ce6f85e79d1d141c1b45dfa16b2671762457cbb4)
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	classic-oob-pairing \
14	crypto \
15	des_iterator \
16	embedded \
17	flash_tlv \
18	gap \
19	gatt-service-client \
20	gatt_client \
21	gatt_server \
22	gatt_service_server \
23	hfp \
24	hid_parser \
25	l2cap-cbm \
26	l2cap-ecbm \
27	le_device_db_tlv \
28	linked_list \
29	mesh \
30	obex \
31	ring_buffer \
32	sdp \
33	sdp_client \
34	security_manager \
35	tlv_posix \
36
37# not testing anything in source tree
38#	maths \
39# no unit tests
40#	embedded \
41#	gatt_server \
42# mixes classic with ble
43#    flash_tlv - contains btstack_linked_key_db tests
44# hangs on buildbot (no output for 20 minutes -> abort)
45#	security_manager_sc
46
47SUBDIRS_BLE = \
48	ad_parser \
49	att_db \
50	ble_client \
51	btstack_memory \
52	crypto \
53	embedded \
54	gap \
55	gatt-service-client \
56	gatt_client \
57	gatt_server \
58	gatt_service_server \
59	hid_parser \
60	l2cap-cbm \
61	le_device_db_tlv \
62	linked_list \
63	ring_buffer \
64	security_manager \
65
66# test fails
67
68# not unit-tests
69# avrcp \
70# map_client \
71# sbc \
72#	gatt_server \
73
74.PHONY: coverage coverage-sm-sc.info
75
76subdirs:
77	echo Building all tests
78	@set -e; \
79	for dir in $(SUBDIRS); do \
80	  $(MAKE) -C $$dir; \
81	done
82
83clean:
84	echo Clean all test
85	@set -e; \
86	for dir in $(SUBDIRS); do \
87	  $(MAKE) -C $$dir clean; \
88	done
89	rm -f *.info
90	rm -rf coverage coverage-unit-ble
91
92subdirs-coverage:
93	echo Run all tests for coverage
94	@set -e; \
95	for dir in $(SUBDIRS); do \
96	  $(MAKE) -C $$dir coverage; \
97	done
98
99subdirs-coverage-ble:
100	echo Run all BLE tests for coverage
101	@set -e; \
102	for dir in $(SUBDIRS_BLE); do \
103	  $(MAKE) -C $$dir coverage; \
104	done
105
106
107coverage-unit.info: subdirs-coverage
108	# delete trace data
109	find . -name "*.gcda" -type f -delete
110	# run tests
111	$(MAKE) subdirs-coverage
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
115coverage-unit-ble.info: subdirs-coverage-ble
116	# delete trace data
117	find . -name "*.gcda" -type f -delete
118	# run tests
119	$(MAKE) subdirs-coverage-ble
120	# collect traces
121	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit-ble.info
122
123
124coverage-all: coverage-unit.info
125	# generate html output
126	genhtml coverage-unit.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage
127
128coverage-unit-ble: coverage-unit-ble.info
129	# generate html output
130	genhtml coverage-unit-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-unit-ble
131
132
133coverage: coverage-all coverage-unit-ble
134
135test:
136	echo Run all tests with ASAN
137	@set -e; \
138	for dir in $(SUBDIRS); do \
139	  $(MAKE) -C $$dir test; \
140	done
141
142test-ble:
143	echo Run all BLE tests with ASAN
144	@set -e; \
145	for dir in $(SUBDIRS_BLE); do \
146	  $(MAKE) -C $$dir test; \
147	done
148