157fe2af8SMatthias Ringwald 257fe2af8SMatthias Ringwald# Makefile to build and run all tests 357fe2af8SMatthias Ringwald 457fe2af8SMatthias RingwaldSUBDIRS = \ 5d2011e9eSMilanka Ringwald ad_parser \ 641362367SMilanka Ringwald att_db \ 7f7cf8388SMatthias Ringwald avdtp \ 819650ae8SMilanka Ringwald avdtp_util \ 91c22f3beSMatthias Ringwald base64 \ 1057fe2af8SMatthias Ringwald ble_client \ 11f7cf8388SMatthias Ringwald btstack_link_key_db \ 129b8d06a5SMilanka Ringwald btstack_memory \ 13415a769fSMatthias Ringwald classic-oob-pairing \ 141c22f3beSMatthias Ringwald crypto \ 1557fe2af8SMatthias Ringwald des_iterator \ 160f7fd6c1SMilanka Ringwald embedded \ 17dd2dbe6aSMatthias Ringwald flash_tlv \ 181470db0cSMatthias Ringwald gap \ 190f7fd6c1SMilanka Ringwald gatt-service-client \ 20ae970bb9SMilanka Ringwald gatt_client \ 21ae970bb9SMilanka Ringwald gatt_server \ 22ab14852dSMilanka Ringwald gatt_service \ 2394818a3bSMatthias Ringwald hfp \ 241c22f3beSMatthias Ringwald hid_parser \ 25*af7c3ae6SMatthias Ringwald l2cap-cbm \ 26*af7c3ae6SMatthias Ringwald l2cap-ecbm \ 2721c2455cSMilanka Ringwald le_device_db_tlv \ 28ae970bb9SMilanka Ringwald linked_list \ 2932ee5dd7SMatthias Ringwald map_test \ 30d491c1eaSMatthias Ringwald mesh \ 311c22f3beSMatthias Ringwald obex \ 32434cfc47SMatthias Ringwald pts \ 331c22f3beSMatthias Ringwald ring_buffer \ 349ccd94f8SMatthias Ringwald sdp \ 3557fe2af8SMatthias Ringwald sdp_client \ 36fe03d808SMatthias Ringwald security_manager \ 371c22f3beSMatthias Ringwald tlv_posix \ 382ce916b3SMatthias Ringwald 39464d3e43SMatthias Ringwald# not testing anything in source tree 40464d3e43SMatthias Ringwald# maths \ 4173e5d7d0SMatthias Ringwald# no unit tests 4273e5d7d0SMatthias Ringwald# embedded \ 4373e5d7d0SMatthias Ringwald# gatt_server \ 44b17ed348SMatthias Ringwald# mixes classic with ble 45b17ed348SMatthias Ringwald# flash_tlv - contains btstack_linked_key_db tests 46b17ed348SMatthias Ringwald# hangs on buildbot (no output for 20 minutes -> abort) 47b17ed348SMatthias Ringwald# security_manager_sc 48f400efd4SMatthias Ringwald 49f400efd4SMatthias RingwaldSUBDIRS_BLE = \ 50d2011e9eSMilanka Ringwald ad_parser \ 51f400efd4SMatthias Ringwald att_db \ 52f400efd4SMatthias Ringwald ble_client \ 539b8d06a5SMilanka Ringwald btstack_memory \ 54f400efd4SMatthias Ringwald crypto \ 551ebfed24SMatthias Ringwald embedded \ 56f400efd4SMatthias Ringwald gap \ 570f7fd6c1SMilanka Ringwald gatt-service-client \ 58ae970bb9SMilanka Ringwald gatt_client \ 590ce29069SMatthias Ringwald gatt_server \ 600f7fd6c1SMilanka Ringwald gatt_server \ 61ab14852dSMilanka Ringwald gatt_service \ 62f400efd4SMatthias Ringwald hid_parser \ 63*af7c3ae6SMatthias Ringwald l2cap-cbm \ 6421c2455cSMilanka Ringwald le_device_db_tlv \ 65f400efd4SMatthias Ringwald linked_list \ 66f400efd4SMatthias Ringwald ring_buffer \ 67f400efd4SMatthias Ringwald security_manager \ 681f56122cSMatthias Ringwald 691c22f3beSMatthias Ringwald# test fails 701c22f3beSMatthias Ringwald 711c22f3beSMatthias Ringwald# not unit-tests 72464d3e43SMatthias Ringwald# avrcp \ 731c22f3beSMatthias Ringwald# map_client \ 741c22f3beSMatthias Ringwald# sbc \ 75c757f61eSMatthias Ringwald# gatt_server \ 76c757f61eSMatthias Ringwald 77ea6d7f25SMatthias Ringwald.PHONY: coverage coverage-sm-sc.info coverage-pts.info 78deb45786SMatthias Ringwald 7957fe2af8SMatthias Ringwaldsubdirs: 8057fe2af8SMatthias Ringwald echo Building all tests 81bbf26c65SMatthias Ringwald @set -e; \ 8257fe2af8SMatthias Ringwald for dir in $(SUBDIRS); do \ 8357fe2af8SMatthias Ringwald $(MAKE) -C $$dir; \ 8457fe2af8SMatthias Ringwald done 8557fe2af8SMatthias Ringwald 8657fe2af8SMatthias Ringwaldclean: 8757fe2af8SMatthias Ringwald echo Clean all test 88bbf26c65SMatthias Ringwald @set -e; \ 8957fe2af8SMatthias Ringwald for dir in $(SUBDIRS); do \ 9057fe2af8SMatthias Ringwald $(MAKE) -C $$dir clean; \ 9157fe2af8SMatthias Ringwald done 9257fe2af8SMatthias Ringwald 939dbbd7d0SMatthias Ringwaldsubdirs-coverage: 949dbbd7d0SMatthias Ringwald echo Run all tests for coverage 959dbbd7d0SMatthias Ringwald @set -e; \ 969dbbd7d0SMatthias Ringwald for dir in $(SUBDIRS); do \ 979dbbd7d0SMatthias Ringwald $(MAKE) -C $$dir coverage; \ 989dbbd7d0SMatthias Ringwald done 999dbbd7d0SMatthias Ringwald 1009dbbd7d0SMatthias Ringwaldsubdirs-coverage-ble: 1019dbbd7d0SMatthias Ringwald echo Run all BLE tests for coverage 1029dbbd7d0SMatthias Ringwald @set -e; \ 1039dbbd7d0SMatthias Ringwald for dir in $(SUBDIRS_BLE); do \ 1049dbbd7d0SMatthias Ringwald $(MAKE) -C $$dir coverage; \ 1059dbbd7d0SMatthias Ringwald done 1069dbbd7d0SMatthias Ringwald 107f400efd4SMatthias Ringwald 108f8e02f4bSMatthias Ringwaldcoverage-pts.info: 109f8e02f4bSMatthias Ringwald # download pts coverage and fix paths 1102245c6f6SMatthias Ringwald curl https://bluekitchen-gmbh.com/btstack/develop/coverage-pts.info | sed "s|/Users/mringwal/buildbot-worker/auto-pts/btstack|`realpath ..`|" > coverage-pts.info 111f8e02f4bSMatthias Ringwald 112772d5e9eSMatthias Ringwaldcoverage-sm-sc.info: 113772d5e9eSMatthias Ringwald # download pts coverage and fix paths 1140f304144SMatthias Ringwald curl https://bluekitchen-gmbh.com/btstack/develop/coverage-sm-sc.info | sed "s|/Users/mringwal/buildbot-worker/test-develop-sm-sc/build|`realpath ..`|" > coverage-sm-sc.info 115772d5e9eSMatthias Ringwald 116f8e02f4bSMatthias Ringwald 117f4e14552SMatthias Ringwaldcoverage-unit.info: subdirs-coverage 118f400efd4SMatthias Ringwald # delete trace data 119f400efd4SMatthias Ringwald find . -name "*.gcda" -type f -delete 120f400efd4SMatthias Ringwald # run tests 1219dbbd7d0SMatthias Ringwald $(MAKE) subdirs-coverage 122464d3e43SMatthias Ringwald # collect traces 123ee858f05SMatthias Ringwald lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit.info 124cf7023dfSMatthias Ringwald # demangle 125cf7023dfSMatthias Ringwald python3 coverage_demangle.py coverage-unit.info 126ee858f05SMatthias Ringwald 127f4e14552SMatthias Ringwaldcoverage-unit-ble.info: subdirs-coverage-ble 128f8e02f4bSMatthias Ringwald # delete trace data 129f8e02f4bSMatthias Ringwald find . -name "*.gcda" -type f -delete 130f8e02f4bSMatthias Ringwald # run tests 1319dbbd7d0SMatthias Ringwald $(MAKE) subdirs-coverage-ble 132f8e02f4bSMatthias Ringwald # collect traces 133f8e02f4bSMatthias Ringwald lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit-ble.info 134f8e02f4bSMatthias Ringwald # demangle 135f8e02f4bSMatthias Ringwald python3 coverage_demangle.py coverage-unit-ble.info 136ee858f05SMatthias Ringwald 137f8e02f4bSMatthias Ringwald 138772d5e9eSMatthias Ringwaldcoverage-ble.info: coverage-pts.info coverage-sm-sc.info coverage-unit-ble.info 139f8e02f4bSMatthias Ringwald # combine unit-ble and pts 140772d5e9eSMatthias 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 141ee858f05SMatthias Ringwald 142f8e02f4bSMatthias Ringwald 143f8e02f4bSMatthias Ringwaldcoverage-bat.info: coverage-ble.info 144f400efd4SMatthias Ringwald # create bat subset from ble subset 145f400efd4SMatthias Ringwald ./coverage_subset_bat.py coverage-ble.info coverage-bat.info 146ee858f05SMatthias Ringwald 147cf7023dfSMatthias Ringwald 148772d5e9eSMatthias Ringwaldcoverage.info: coverage-pts.info coverage-sm-sc.info coverage-unit.info 149f8e02f4bSMatthias Ringwald # combine unit-ble and pts 150772d5e9eSMatthias Ringwald lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-sm-sc.info -a coverage-unit.info --output-file coverage.info 151f8e02f4bSMatthias Ringwald 152f8e02f4bSMatthias Ringwald 153f8e02f4bSMatthias Ringwaldcoverage-all: coverage.info 154464d3e43SMatthias Ringwald # generate html output 155d6f5473fSMatthias Ringwald genhtml coverage.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage 156f8e02f4bSMatthias Ringwald 157f8e02f4bSMatthias Ringwaldcoverage-bat: coverage-bat.info 158f8e02f4bSMatthias Ringwald # generate html output 159f8e02f4bSMatthias Ringwald genhtml coverage-bat.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-bat 160f8e02f4bSMatthias Ringwald 161f8e02f4bSMatthias Ringwaldcoverage-ble: coverage-ble.info 162f8e02f4bSMatthias Ringwald # generate html output 163f8e02f4bSMatthias Ringwald genhtml coverage-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-ble 164f8e02f4bSMatthias Ringwald 16580dcb211SMatthias Ringwaldcoverage-unit-ble: coverage-unit-ble.info 16680dcb211SMatthias Ringwald # generate html output 16780dcb211SMatthias Ringwald genhtml coverage-unit-ble.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-unit-ble 168f8e02f4bSMatthias Ringwald 169b7eced11SMatthias Ringwaldcoverage-sm-sc: coverage-sm-sc.info 170b7eced11SMatthias Ringwald # generate html output 171b7eced11SMatthias Ringwald genhtml coverage-sm-sc.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-sm-sc 172b7eced11SMatthias Ringwald 173f4e14552SMatthias Ringwaldcoverage-pts: coverage-pts.info 174f4e14552SMatthias Ringwald # generate html output 175f4e14552SMatthias Ringwald genhtml coverage-pts.info --branch-coverage --demangle-cpp --config-file lcovrc --output-directory coverage-pts 176f4e14552SMatthias Ringwald 177f8e02f4bSMatthias Ringwaldcoverage: coverage-all coverage-ble coverage-bat 178642d8b89SMatthias Ringwald 179642d8b89SMatthias Ringwaldtest: 180642d8b89SMatthias Ringwald echo Run all tests with ASAN 181642d8b89SMatthias Ringwald @set -e; \ 182642d8b89SMatthias Ringwald for dir in $(SUBDIRS); do \ 183642d8b89SMatthias Ringwald $(MAKE) -C $$dir test; \ 184642d8b89SMatthias Ringwald done 185642d8b89SMatthias Ringwald 186642d8b89SMatthias Ringwaldtest-ble: 187642d8b89SMatthias Ringwald echo Run all BLE tests with ASAN 188642d8b89SMatthias Ringwald @set -e; \ 189642d8b89SMatthias Ringwald for dir in $(SUBDIRS_BLE); do \ 190642d8b89SMatthias Ringwald $(MAKE) -C $$dir test; \ 191642d8b89SMatthias Ringwald done 192