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