1 2# Makefile to build and run all tests 3 4SUBDIRS = \ 5 att_db \ 6 avdtp \ 7 avdtp_util \ 8 base64 \ 9 ble_client \ 10 btstack_link_key_db \ 11 crypto \ 12 des_iterator \ 13 flash_tlv \ 14 gatt_client \ 15 gap \ 16 hfp \ 17 hid_parser \ 18 linked_list \ 19 map_test \ 20 mesh \ 21 obex \ 22 ring_buffer \ 23 sdp \ 24 sdp_client \ 25 security_manager \ 26 tlv_posix \ 27# not testing anything in source tree 28# maths \ 29# no unit tests 30# embedded \ 31# gatt_server \ 32 33# flash_tlv also contains btstack_linked_key_db tests 34 35SUBDIRS_BLE = \ 36 att_db \ 37 ble_client \ 38 crypto \ 39 gatt_client \ 40 gap \ 41 hid_parser \ 42 linked_list \ 43 ring_buffer \ 44 security_manager \ 45# tlv_posix \ 46 47# test fails 48 49# not unit-tests 50# avrcp \ 51# map_client \ 52# sbc \ 53# gatt_server \ 54 55.PHONY: coverage 56 57subdirs: 58 echo Building all tests 59 @set -e; \ 60 for dir in $(SUBDIRS); do \ 61 $(MAKE) -C $$dir; \ 62 done 63 64clean: 65 echo Clean all test 66 @set -e; \ 67 for dir in $(SUBDIRS); do \ 68 $(MAKE) -C $$dir clean; \ 69 done 70 71test: 72 echo Run all test 73 @set -e; \ 74 for dir in $(SUBDIRS); do \ 75 $(MAKE) -C $$dir test; \ 76 done 77 78test-ble: 79 echo Run all BLE tests 80 @set -e; \ 81 for dir in $(SUBDIRS_BLE); do \ 82 $(MAKE) -C $$dir test; \ 83 done 84 85test-coverage-ble: subdirs 86 # delete trace data 87 find . -name "*.gcda" -type f -delete 88 # run tests 89 $(MAKE) test-ble 90 # collect traces 91 lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit-ble.info 92 # demangle 93 python3 coverage_demangle.py coverage-unit-ble.info 94 95test-coverage: subdirs 96 # delete trace data 97 find . -name "*.gcda" -type f -delete 98 # run tests 99 $(MAKE) test 100 # collect traces 101 lcov --capture --rc lcov_branch_coverage=1 --directory . --exclude "/Applications/*" --exclude "/Library/*" --exclude "/usr/*" --exclude "*/test/*" --output-file coverage-unit.info 102 # demangle 103 python3 coverage_demangle.py coverage-unit.info 104 105coverage: test-coverage test-coverage-ble 106 # download pts coverage and fix paths 107 curl https://bluekitchen-gmbh.com/btstack/develop/coverage-pts.info | sed 's|buildbot-worker/auto-pts/btstack|buildbot-worker/test-develop/build|' > coverage-pts.info 108 109 # combine unit[-ble] and pts 110 lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-unit.info --output-file coverage.info 111 lcov --rc lcov_branch_coverage=1 -a coverage-pts.info -a coverage-unit-ble.info --output-file coverage-ble.info 112 113 # create bat subset from ble subset 114 ./coverage_subset_bat.py coverage-ble.info coverage-bat.info 115 ./coverage_subset_bat.py coverage-unit-ble.info coverage-unit-bat.info 116 117 ./coverage_subset_bat.py coverage-pts.info coverage-pts-bat.info 118 119 # generate html output 120 genhtml coverage-unit.info --branch-coverage --demangle-cpp --output-directory coverage-unit 121 genhtml coverage-unit-bat.info --branch-coverage --demangle-cpp --output-directory coverage-unit-bat 122 genhtml coverage-bat.info --branch-coverage --demangle-cpp --output-directory coverage-bat 123 genhtml coverage.info --branch-coverage --demangle-cpp --output-directory coverage 124 genhtml coverage-pts-bat.info --branch-coverage --demangle-cpp --output-directory coverage-pts-bat 125