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