xref: /btstack/test/Makefile (revision ea6d7f25d93a48db1c6192c72fb8f5373f0290e9)
157fe2af8SMatthias Ringwald
257fe2af8SMatthias Ringwald# Makefile to build and run all tests
357fe2af8SMatthias Ringwald
457fe2af8SMatthias RingwaldSUBDIRS =  \
541362367SMilanka Ringwald	att_db \
6f7cf8388SMatthias Ringwald	avdtp \
719650ae8SMilanka Ringwald	avdtp_util \
81c22f3beSMatthias Ringwald	base64 \
957fe2af8SMatthias Ringwald	ble_client \
10f7cf8388SMatthias Ringwald	btstack_link_key_db \
111c22f3beSMatthias Ringwald	crypto \
1257fe2af8SMatthias Ringwald	des_iterator \
13dd2dbe6aSMatthias Ringwald	flash_tlv \
141470db0cSMatthias Ringwald	gap \
15ae970bb9SMilanka Ringwald	gatt_client \
16ae970bb9SMilanka Ringwald	gatt_server \
1794818a3bSMatthias Ringwald	hfp \
181c22f3beSMatthias Ringwald	hid_parser \
1921c2455cSMilanka Ringwald	le_device_db_tlv \
20ae970bb9SMilanka Ringwald	linked_list \
2132ee5dd7SMatthias Ringwald	map_test \
22d491c1eaSMatthias Ringwald	mesh \
231c22f3beSMatthias Ringwald	obex \
241c22f3beSMatthias Ringwald	ring_buffer \
259ccd94f8SMatthias Ringwald	sdp \
2657fe2af8SMatthias Ringwald	sdp_client \
27fe03d808SMatthias Ringwald	security_manager \
281c22f3beSMatthias Ringwald	tlv_posix \
292ce916b3SMatthias Ringwald
30464d3e43SMatthias Ringwald# not testing anything in source tree
31464d3e43SMatthias Ringwald#	maths \
3273e5d7d0SMatthias Ringwald# no unit tests
3373e5d7d0SMatthias Ringwald#	embedded \
3473e5d7d0SMatthias Ringwald#	gatt_server \
35b17ed348SMatthias Ringwald# mixes classic with ble
36b17ed348SMatthias Ringwald#    flash_tlv - contains btstack_linked_key_db tests
37b17ed348SMatthias Ringwald# hangs on buildbot (no output for 20 minutes -> abort)
38b17ed348SMatthias Ringwald#	security_manager_sc
39f400efd4SMatthias Ringwald
40f400efd4SMatthias RingwaldSUBDIRS_BLE = \
41f400efd4SMatthias Ringwald	att_db \
42f400efd4SMatthias Ringwald	ble_client \
43f400efd4SMatthias Ringwald	crypto \
44f400efd4SMatthias Ringwald	gap \
45ae970bb9SMilanka Ringwald	gatt_client \
46f400efd4SMatthias Ringwald	hid_parser \
4721c2455cSMilanka Ringwald	le_device_db_tlv \
48f400efd4SMatthias Ringwald	linked_list \
49f400efd4SMatthias Ringwald	ring_buffer \
50ae970bb9SMilanka Ringwald    gatt_server \
51f400efd4SMatthias Ringwald    security_manager \
52f400efd4SMatthias Ringwald
531c22f3beSMatthias Ringwald# test fails
541c22f3beSMatthias Ringwald
551c22f3beSMatthias Ringwald# not unit-tests
56464d3e43SMatthias Ringwald# avrcp \
571c22f3beSMatthias Ringwald# map_client \
581c22f3beSMatthias Ringwald# sbc \
59c757f61eSMatthias Ringwald#	gatt_server \
60c757f61eSMatthias Ringwald
61*ea6d7f25SMatthias Ringwald.PHONY: coverage coverage-sm-sc.info coverage-pts.info
62deb45786SMatthias Ringwald
6357fe2af8SMatthias Ringwaldsubdirs:
6457fe2af8SMatthias Ringwald	echo Building all tests
65bbf26c65SMatthias Ringwald	@set -e; \
6657fe2af8SMatthias Ringwald	for dir in $(SUBDIRS); do \
6757fe2af8SMatthias Ringwald	  $(MAKE) -C $$dir; \
6857fe2af8SMatthias Ringwald	done
6957fe2af8SMatthias Ringwald
7057fe2af8SMatthias Ringwaldclean:
7157fe2af8SMatthias Ringwald	echo Clean all test
72bbf26c65SMatthias Ringwald	@set -e; \
7357fe2af8SMatthias Ringwald	for dir in $(SUBDIRS); do \
7457fe2af8SMatthias Ringwald	  $(MAKE) -C $$dir clean; \
7557fe2af8SMatthias Ringwald	done
7657fe2af8SMatthias Ringwald
7757fe2af8SMatthias Ringwaldtest:
7857fe2af8SMatthias Ringwald	echo Run all test
79bbf26c65SMatthias Ringwald	@set -e; \
8057fe2af8SMatthias Ringwald	for dir in $(SUBDIRS); do \
8157fe2af8SMatthias Ringwald	  $(MAKE) -C $$dir test; \
8257fe2af8SMatthias Ringwald	done
8357fe2af8SMatthias Ringwald
84f400efd4SMatthias Ringwaldtest-ble:
85f400efd4SMatthias Ringwald	echo Run all BLE tests
86f400efd4SMatthias Ringwald	@set -e; \
87f400efd4SMatthias Ringwald	for dir in $(SUBDIRS_BLE); do \
88f400efd4SMatthias Ringwald	  $(MAKE) -C $$dir test; \
89f400efd4SMatthias Ringwald	done
90f400efd4SMatthias Ringwald
91f400efd4SMatthias Ringwald
92f8e02f4bSMatthias Ringwaldcoverage-pts.info:
93f8e02f4bSMatthias Ringwald	# download pts coverage and fix paths
942245c6f6SMatthias Ringwald	curl https://bluekitchen-gmbh.com/btstack/develop/coverage-pts.info | sed "s|/Users/mringwal/buildbot-worker/auto-pts/btstack|`realpath ..`|" > coverage-pts.info
95f8e02f4bSMatthias Ringwald
96772d5e9eSMatthias Ringwaldcoverage-sm-sc.info:
97772d5e9eSMatthias Ringwald	# download pts coverage and fix paths
98*ea6d7f25SMatthias Ringwald	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
99772d5e9eSMatthias Ringwald
100f8e02f4bSMatthias Ringwald
101f8e02f4bSMatthias Ringwaldcoverage-unit.info: subdirs
102f400efd4SMatthias Ringwald	# delete trace data
103f400efd4SMatthias Ringwald	find . -name "*.gcda" -type f -delete
104f400efd4SMatthias Ringwald	# run tests
105f400efd4SMatthias Ringwald	$(MAKE) test
106464d3e43SMatthias Ringwald	# collect traces
107ee858f05SMatthias Ringwald	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit.info
108cf7023dfSMatthias Ringwald	# demangle
109cf7023dfSMatthias Ringwald	python3 coverage_demangle.py coverage-unit.info
110ee858f05SMatthias Ringwald
111f8e02f4bSMatthias Ringwaldcoverage-unit-ble.info: subdirs
112f8e02f4bSMatthias Ringwald	# delete trace data
113f8e02f4bSMatthias Ringwald	find . -name "*.gcda" -type f -delete
114f8e02f4bSMatthias Ringwald	# run tests
115f8e02f4bSMatthias Ringwald	$(MAKE) test-ble
116f8e02f4bSMatthias Ringwald	# collect traces
117f8e02f4bSMatthias Ringwald	lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit-ble.info
118f8e02f4bSMatthias Ringwald	# demangle
119f8e02f4bSMatthias Ringwald	python3 coverage_demangle.py coverage-unit-ble.info
120ee858f05SMatthias Ringwald
121f8e02f4bSMatthias Ringwald
122772d5e9eSMatthias Ringwaldcoverage-ble.info: coverage-pts.info coverage-sm-sc.info coverage-unit-ble.info
123f8e02f4bSMatthias Ringwald	# combine unit-ble and pts
124772d5e9eSMatthias Ringwald	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
125ee858f05SMatthias Ringwald
126f8e02f4bSMatthias Ringwald
127f8e02f4bSMatthias Ringwaldcoverage-bat.info: coverage-ble.info
128f400efd4SMatthias Ringwald	# create bat subset from ble subset
129f400efd4SMatthias Ringwald	./coverage_subset_bat.py coverage-ble.info coverage-bat.info
130ee858f05SMatthias Ringwald
131cf7023dfSMatthias Ringwald
132772d5e9eSMatthias Ringwaldcoverage.info: coverage-pts.info coverage-sm-sc.info coverage-unit.info
133f8e02f4bSMatthias Ringwald	# combine unit-ble and pts
134772d5e9eSMatthias Ringwald	lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-sm-sc.info -a coverage-unit.info --output-file coverage.info
135f8e02f4bSMatthias Ringwald
136f8e02f4bSMatthias Ringwald
137f8e02f4bSMatthias Ringwaldcoverage-all: coverage.info
138464d3e43SMatthias Ringwald	# generate html output
139d6f5473fSMatthias Ringwald	genhtml coverage.info     --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage
140f8e02f4bSMatthias Ringwald
141f8e02f4bSMatthias Ringwaldcoverage-bat: coverage-bat.info
142f8e02f4bSMatthias Ringwald	# generate html output
143f8e02f4bSMatthias Ringwald	genhtml coverage-bat.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-bat
144f8e02f4bSMatthias Ringwald
145f8e02f4bSMatthias Ringwaldcoverage-ble: coverage-ble.info
146f8e02f4bSMatthias Ringwald	# generate html output
147f8e02f4bSMatthias Ringwald	genhtml coverage-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-ble
148f8e02f4bSMatthias Ringwald
149f8e02f4bSMatthias Ringwald
150f8e02f4bSMatthias Ringwaldcoverage: coverage-all coverage-ble coverage-bat
151