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