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