diff --git a/test/ad_parser/Makefile b/test/ad_parser/Makefile index 15ed3b507..b83d0f728 100644 --- a/test/ad_parser/Makefile +++ b/test/ad_parser/Makefile @@ -5,8 +5,12 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -g -Wall -I.. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/classic @@ -17,24 +21,33 @@ COMMON = \ hci_dump.c \ ad_parser.c \ -COMMON_OBJ = $(COMMON:.c=.o) +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/ad_parser_test +all: build-coverage/ad_parser_test build-asan/ad_parser_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ -build-coverage/ad_parser_test: ${COMMON_OBJ} ad_parser_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/ad_parser_test: ${COMMON_OBJ_COVERAGE} build-coverage/ad_parser_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/ad_parser_test: ${COMMON_OBJ_ASAN} build-asan/ad_parser_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/ad_parser_test + build-asan/ad_parser_test coverage: all + rm -f build-coverage/*.gcda build-coverage/ad_parser_test clean: - rm -f ad_parser_test *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/att_db/Makefile b/test/att_db/Makefile index 5dbc89e42..5a2a83787 100644 --- a/test/att_db/Makefile +++ b/test/att_db/Makefile @@ -9,9 +9,12 @@ CFLAGS = -g -Wall \ -I${BTSTACK_ROOT}/src CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael -CFLAGS += -fprofile-arcs -ftest-coverage +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael VPATH += ${BTSTACK_ROOT}/src @@ -27,30 +30,41 @@ COMMON = \ hci_cmd.c \ rijndael.c -COMMON_OBJ = $(COMMON:.c=.o) +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/att_db_util_test build-coverage/att_db_test +all: build-coverage/att_db_util_test build-coverage/att_db_test build-asan/att_db_util_test build-asan/att_db_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ -build-coverage/att_db_util_test: ${COMMON_OBJ} att_db_util_test.c | build-coverage/ - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/att_db_test: att_db_test.c att_db.o btstack_util.o hci_dump.o att_db_util.o | build-coverage/ - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/att_db_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/att_db_util_test.o | build-coverage/ + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/att_db_test: build-coverage/att_db_test.o build-coverage/att_db.o build-coverage/btstack_util.o build-coverage/hci_dump.o build-coverage/att_db_util.o | build-coverage/ + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/att_db_util_test: ${COMMON_OBJ_ASAN} build-asan/att_db_util_test.o | build-asan/ + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/att_db_test: build-asan/att_db_test.o build-asan/att_db.o build-asan/btstack_util.o build-asan/hci_dump.o build-asan/att_db_util.o | build-asan/ + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/att_db_util_test - build-coverage/att_db_test + build-asan/att_db_util_test + build-asan/att_db_test coverage: all + rm -f build-coverage/*.gcda build-coverage/att_db_util_test build-coverage/att_db_test clean: - rm -f att_db_util_test - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/avdtp_util/Makefile b/test/avdtp_util/Makefile index 4e92d599e..00c94600f 100644 --- a/test/avdtp_util/Makefile +++ b/test/avdtp_util/Makefile @@ -8,10 +8,6 @@ CFLAGS = -g -Wall \ -I.. \ -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage - -LDFLAGS += -lCppUTest -lCppUTestExt - VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/classic VPATH += ${BTSTACK_ROOT}/platform/posix @@ -21,28 +17,42 @@ COMMON = \ btstack_linked_list.c \ hci_dump.c \ avdtp_util.c \ - -COMMON_OBJ = $(COMMON:.c=.o) -all: build-coverage/avdtp_util_test -build-coverage: - mkdir -p build-coverage +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -build-coverage/avdtp_util_test: ${COMMON_OBJ} avdtp_util_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address + +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/avdtp_util_test build-asan/avdtp_util_test + +build-%: + mkdir -p $@ + +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/avdtp_util_test: ${COMMON_OBJ_COVERAGE} build-coverage/avdtp_util_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/avdtp_util_test: ${COMMON_OBJ_ASAN} build-asan/avdtp_util_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - rm -f *.gcda - build-coverage/avdtp_util_test + build-asan/avdtp_util_test coverage: all - rm -f *.gcda + rm -f build-coverage/*.gcda build-coverage/avdtp_util_test clean: - rm -f avdtp_util_test - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/base64/Makefile b/test/base64/Makefile index 555c30c96..f65a3ecc0 100644 --- a/test/base64/Makefile +++ b/test/base64/Makefile @@ -6,30 +6,47 @@ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src -COMMON_OBJ = \ - btstack_base64_decoder.o \ - btstack_util.o \ - hci_dump.o \ +COMMON = \ + btstack_base64_decoder.c \ + btstack_util.c \ + hci_dump.c \ -all: build-coverage/base64_decoder_test +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -build-coverage: - mkdir -p build-coverage +all: build-coverage/base64_decoder_test build-asan/base64_decoder_test -build-coverage/base64_decoder_test: ${COMMON_OBJ} base64_decoder_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-%: + mkdir -p $@ + +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/base64_decoder_test: ${COMMON_OBJ_COVERAGE} build-coverage/base64_decoder_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/base64_decoder_test: ${COMMON_OBJ_ASAN} build-asan/base64_decoder_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/base64_decoder_test + build-asan/base64_decoder_test coverage: all + rm -f build-coverage/*.gcda build-coverage/base64_decoder_test clean: - rm -fr base64_decoder_test *.dSYM *.o build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/ble_client/Makefile b/test/ble_client/Makefile index 9d40162ca..231d11359 100644 --- a/test/ble_client/Makefile +++ b/test/ble_client/Makefile @@ -5,8 +5,13 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -g -Wall -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src/ble VPATH += ${BTSTACK_ROOT}/src @@ -23,24 +28,32 @@ COMMON = \ hci_cmd.c \ hci_dump.c \ -COMMON_OBJ = $(COMMON:.c=.o) +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/ad_parser_test +all: build-coverage/ad_parser_test build-asan/ad_parser_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ -build-coverage/ad_parser_test: ${CORE_OBJ} ${COMMON_OBJ} ad_parser_test.c | build-coverage - ${CC} ${CORE_OBJ} ${COMMON_OBJ} ad_parser_test.c ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/ad_parser_test: ${COMMON_OBJ_COVERAGE} build-coverage/ad_parser_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/ad_parser_test: ${COMMON_OBJ_ASAN} build-asan/ad_parser_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/ad_parser_test + build-asan/ad_parser_test coverage: all + rm -f build-coverage/*.gcda build-coverage/ad_parser_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/btstack_link_key_db/Makefile b/test/btstack_link_key_db/Makefile index 3770dfc7e..68efdfc5b 100644 --- a/test/btstack_link_key_db/Makefile +++ b/test/btstack_link_key_db/Makefile @@ -11,9 +11,13 @@ CFLAGS = -g -Wall \ -I${BTSTACK_ROOT}/src \ -I${BTSTACK_ROOT}/platform/posix \ -I${BTSTACK_ROOT}/3rd-party/tinydir -CFLAGS += -fprofile-arcs -ftest-coverage + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src/classic VPATH += ${BTSTACK_ROOT}/src @@ -33,30 +37,45 @@ MEMORY = \ btstack_link_key_db_memory.c \ btstack_linked_list.c -FS_OBJ = $(FS:.c=.o) -MEMORY_OBJ = $(MEMORY:.c=.o) +FS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FS:.c=.o)) +FS_OBJ_ASAN = $(addprefix build-asan/, $(FS:.c=.o)) -all: build-coverage/btstack_link_key_db_memory_test build-coverage/btstack_link_key_db_fs_test +MEMORY_OBJ_COVERAGE = $(addprefix build-coverage/,$(MEMORY:.c=.o)) +MEMORY_OBJ_ASAN = $(addprefix build-asan/, $(MEMORY:.c=.o)) -build-coverage: - mkdir -p build-coverage +all: build-coverage/btstack_link_key_db_memory_test build-coverage/btstack_link_key_db_fs_test build-asan/btstack_link_key_db_memory_test build-asan/btstack_link_key_db_fs_test -build-coverage/btstack_link_key_db_memory_test: ${MEMORY_OBJ} btstack_link_key_db_memory_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-%: + mkdir -p $@ + +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/btstack_link_key_db_fs_test: ${FS_OBJ_COVERAGE} build-coverage/btstack_link_key_db_fs_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/btstack_link_key_db_memory_test: ${MEMORY_OBJ_COVERAGE} build-coverage/btstack_link_key_db_memory_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/btstack_link_key_db_fs_test: ${FS_OBJ_ASAN} build-asan/btstack_link_key_db_fs_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/btstack_link_key_db_memory_test: ${MEMORY_OBJ_ASAN} build-asan/btstack_link_key_db_memory_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/btstack_link_key_db_fs_test: ${FS_OBJ} btstack_link_key_db_fs_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/btstack_link_key_db_memory_test - build-coverage/btstack_link_key_db_fs_test + build-asan/btstack_link_key_db_memory_test + build-asan/btstack_link_key_db_fs_test coverage: all + rm -f build-coverage/*.gcda build-coverage/btstack_link_key_db_memory_test build-coverage/btstack_link_key_db_fs_test clean: - rm -f *.o - rm -f *.gcno *.gcda - rm -rf *.dSYM build-coverage + rm -rf build-coverage build-asan diff --git a/test/btstack_memory/Makefile b/test/btstack_memory/Makefile index 8d57ec70c..71db6b311 100644 --- a/test/btstack_memory/Makefile +++ b/test/btstack_memory/Makefile @@ -5,8 +5,13 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -g -Wall -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/classic @@ -18,29 +23,41 @@ COMMON = \ btstack_memory_pool.c \ btstack_memory.c \ -COMMON_OBJ = $(COMMON:.c=.o) +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/btstack_memory_pool_test build-coverage/btstack_memory_test +all: build-coverage/btstack_memory_pool_test build-coverage/btstack_memory_test build-asan/btstack_memory_pool_test build-asan/btstack_memory_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ -build-coverage/btstack_memory_pool_test: ${COMMON_OBJ} btstack_memory_pool_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/btstack_memory_test: ${COMMON_OBJ} btstack_memory_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/btstack_memory_pool_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_memory_pool_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/btstack_memory_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_memory_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/btstack_memory_pool_test: ${COMMON_OBJ_ASAN} build-asan/btstack_memory_pool_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/btstack_memory_test: ${COMMON_OBJ_ASAN} build-asan/btstack_memory_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/btstack_memory_pool_test - build-coverage/btstack_memory_test + build-asan/btstack_memory_pool_test + build-asan/btstack_memory_test coverage: all + rm -f build-coverage/*.gcda build-coverage/btstack_memory_pool_test build-coverage/btstack_memory_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/crypto/Makefile b/test/crypto/Makefile index 16e10a166..d5b6c56e7 100644 --- a/test/crypto/Makefile +++ b/test/crypto/Makefile @@ -10,8 +10,13 @@ CFLAGS += -I. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/platform/posix CFLAGS += -I${BTSTACK_ROOT}/3rd-party/mbedtls/include CFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -19,45 +24,58 @@ VPATH += ${BTSTACK_ROOT}/platform/posix VPATH += ${BTSTACK_ROOT}/3rd-party/micro-ecc VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael -MBEDTLS = \ - ecp.c \ - ecp_curves.c \ - bignum.c \ +all: build-coverage/aes_ccm_test build-coverage/aestest build-coverage/ecc_micro_ecc build-coverage/aes_cmac_test \ + build-asan/aes_ccm_test build-asan/aestest build-asan/ecc_micro_ecc build-asan/aes_cmac_test -MICROECC = \ - uECC.c +build-%: + mkdir -p $@ -all: build-coverage/aes_ccm_test build-coverage/aestest build-coverage/ecc_micro_ecc build-coverage/aes_cmac_test +build-coverage/%.o: %.c | build-coverage + gcc -c ${CFLAGS_COVERAGE} $< -o $@ -build-coverage: - mkdir -p build-coverage +build-asan/%.o: %.c | build-asan + gcc -c $(CFLAGS_ASAN) $< -o $@ -build-coverage/aes_ccm_test: aes_ccm.o aes_ccm_test.o btstack_crypto.o btstack_linked_list.o hci_cmd.o btstack_util.o hci_dump.o aes_cmac.o rijndael.o mock.o | build-coverage - ${CC} ${CFLAGS} $^ -o $@ -build-coverage/aestest: aestest.o rijndael.o | build-coverage - ${CC} ${CFLAGS} $^ -o $@ +build-coverage/aes_ccm_test: build-coverage/aes_ccm.o build-coverage/aes_ccm_test.o build-coverage/btstack_crypto.o build-coverage/btstack_linked_list.o build-coverage/hci_cmd.o build-coverage/btstack_util.o build-coverage/hci_dump.o build-coverage/aes_cmac.o build-coverage/rijndael.o build-coverage/mock.o | build-coverage + ${CC} ${LDFLAGS_COVERAGE} $^ -o $@ -build-coverage/ecc_micro_ecc: ecc_micro_ecc.o ${MICROECC} | build-coverage - gcc ${CFLAGS} $^ -o $@ +build-coverage/aestest: build-coverage/aestest.o build-coverage/rijndael.o | build-coverage + ${CC} ${LDFLAGS_COVERAGE} $^ -o $@ + +build-coverage/ecc_micro_ecc: build-coverage/ecc_micro_ecc.o build-coverage/uECC.o | build-coverage + gcc ${LDFLAGS_COVERAGE} $^ -o $@ + +build-coverage/aes_cmac_test: build-coverage/aes_cmac_test.o build-coverage/aes_cmac.o build-coverage/rijndael.o | build-coverage + gcc ${LDFLAGS_COVERAGE} $^ -o $@ + + +build-asan/aes_ccm_test: build-asan/aes_ccm.o build-asan/aes_ccm_test.o build-asan/btstack_crypto.o build-asan/btstack_linked_list.o build-asan/hci_cmd.o build-asan/btstack_util.o build-asan/hci_dump.o build-asan/aes_cmac.o build-asan/rijndael.o build-asan/mock.o | build-asan + ${CC} ${LDFLAGS_ASAN} $^ -o $@ + +build-asan/aestest: build-asan/aestest.o build-asan/rijndael.o | build-asan + ${CC} ${LDFLAGS_ASAN} $^ -o $@ + +build-asan/ecc_micro_ecc: build-asan/ecc_micro_ecc.o build-asan/uECC.o | build-asan + gcc ${LDFLAGS_ASAN} $^ -o $@ + +build-asan/aes_cmac_test: build-asan/aes_cmac_test.o build-asan/aes_cmac.o build-asan/rijndael.o | build-asan + gcc ${LDFLAGS_ASAN} $^ -o $@ -build-coverage/aes_cmac_test: aes_cmac_test.o aes_cmac.o rijndael.o | build-coverage - gcc ${CFLAGS} $^ -o $@ test: all - build-coverage/aes_cmac_test - build-coverage/aestest - build-coverage/ecc_micro_ecc - build-coverage/aes_cmac_test + build-asan/aes_cmac_test + build-asan/aestest + build-asan/ecc_micro_ecc + build-asan/aes_cmac_test coverage: all + rm -f build-coverage/*.gcda build-coverage/aes_cmac_test build-coverage/aestest build-coverage/ecc_micro_ecc build-coverage/aes_cmac_test clean: - rm -f *.o - rm -f *.gcno *.gcda - rm -rf *.dSYM + rm -rf build-coverage build-asan diff --git a/test/crypto/aes_cmac_test.c b/test/crypto/aes_cmac_test.c index 0769daed5..444866ab0 100644 --- a/test/crypto/aes_cmac_test.c +++ b/test/crypto/aes_cmac_test.c @@ -37,7 +37,7 @@ const char * f5_n1_string = "d5cb8454 d177733e ffffb2ec 712baeab"; const char * f5_n2_string = "a6e8e7cc 25a75f6e 216583f7 ff3dc4cf"; const char * f5_a1_string = "00561237 37bfce"; const char * f5_a2_string = "00a71370 2dcfc1"; -const char * f5_cmac_string = "2965f176 a1084a02 fd3f6a20 ce636e20 69867911 69d7cd23 980522b5 94750a38"; +const char * f5_cmac_string = "2965f176 a1084a02 fd3f6a20 ce636e20"; // f6 const char * f6_n1_string = "d5cb8454 d177733e ffffb2ec 712baeab"; diff --git a/test/des_iterator/Makefile b/test/des_iterator/Makefile index 73db71c60..0d1f19e89 100644 --- a/test/des_iterator/Makefile +++ b/test/des_iterator/Makefile @@ -5,8 +5,13 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -g -Wall -I.. -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/classic @@ -17,23 +22,35 @@ COMMON = \ hci_dump.c \ btstack_util.c -COMMON_OBJ = $(COMMON:.c=.o) +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/des_iterator_test +all: build-coverage/des_iterator_test build-asan/des_iterator_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ + +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/des_iterator_test: ${COMMON_OBJ_COVERAGE} build-coverage/des_iterator_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/des_iterator_test: ${COMMON_OBJ_ASAN} build-asan/des_iterator_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/des_iterator_test: ${COMMON_OBJ} des_iterator_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/des_iterator_test + build-asan/des_iterator_test coverage: all + rm -f build-coverage/*.gcda build-coverage/des_iterator_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage + rm -rf build-coverage build-asan diff --git a/test/embedded/Makefile b/test/embedded/Makefile index a60f565e9..6a05ed038 100644 --- a/test/embedded/Makefile +++ b/test/embedded/Makefile @@ -9,11 +9,14 @@ CFLAGS = -g -Wall \ -I${BTSTACK_ROOT}/src \ -I${BTSTACK_ROOT}/platform/embedded -CFLAGS += -fprofile-arcs -ftest-coverage - CFLAGS += -DHAVE_HAL_AUDIO -LDFLAGS += -lCppUTest -lCppUTestExt +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -42,34 +45,48 @@ COMMON = \ hci_transport_h4.c \ hci_transport_h5.c \ -COMMON_OBJ = $(COMMON:.c=.o) +FREERTOS = \ + btstack_run_loop_freertos.c \ + btstack_uart_block_freertos.c \ -FREERTOS_OBJS = \ - btstack_run_loop_freertos.o \ - btstack_uart_block_freertos.o \ +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -all: build-coverage/embedded_test build-coverage/freertos_test +FREERTOS_OBJ_COVERAGE = $(addprefix build-coverage/,$(FREERTOS:.c=.o)) +FREERTOS_OBJ_ASAN = $(addprefix build-asan/, $(FREERTOS:.c=.o)) -build-coverage: - mkdir -p build-coverage +all: build-coverage/embedded_test build-coverage/freertos_test build-asan/embedded_test build-asan/freertos_test -build-coverage/embedded_test: ${COMMON_OBJ} embedded_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-%: + mkdir -p $@ -build-coverage/freertos_test: ${COMMON_OBJ} ${FREERTOS_OBJS} freertos_test.c | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/embedded_test: ${COMMON_OBJ} build-coverage/embedded_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/freertos_test: ${COMMON_OBJ} ${FREERTOS_OBJS} build-coverage/freertos_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/embedded_test: ${COMMON_OBJ} build-asan/embedded_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/freertos_test: ${COMMON_OBJ} ${FREERTOS_OBJS} build-asan/freertos_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/embedded_test - build-coverage/freertos_test + build-asan/embedded_test + build-asan/freertos_test coverage: all + rm -f build-coverage/*.gcda build-coverage/embedded_test build-coverage/freertos_test clean: - rm -f embedded_test - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/flash_tlv/Makefile b/test/flash_tlv/Makefile index db1915fa6..9d7a60242 100644 --- a/test/flash_tlv/Makefile +++ b/test/flash_tlv/Makefile @@ -3,11 +3,11 @@ CC=g++ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest -COMMON_OBJ = \ - btstack_tlv_flash_bank.o \ - btstack_util.o \ - hal_flash_bank_memory.o \ - hci_dump.o \ +COMMON = \ + btstack_tlv_flash_bank.c \ + btstack_util.c \ + hal_flash_bank_memory.c \ + hci_dump.c \ VPATH = \ ${BTSTACK_ROOT}/src \ @@ -26,23 +26,39 @@ CFLAGS = \ -I${BTSTACK_ROOT}/src \ -I${BTSTACK_ROOT}/platform/embedded \ -CFLAGS += -fprofile-arcs -ftest-coverage +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -all: build-coverage/tlv_test +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -build-coverage: - mkdir -p build-coverage +all: build-coverage/tlv_test build-asan/tlv_test -clean: - rm -rf *.o *.dSYM *.pklg build-coverage - rm -f *.gcno *.gcda +build-%: + mkdir -p $@ -build-coverage/tlv_test: ${COMMON_OBJ} btstack_link_key_db_tlv.o tlv_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/tlv_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_link_key_db_tlv.o build-coverage/tlv_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/tlv_test: ${COMMON_OBJ_ASAN} build-asan/btstack_link_key_db_tlv.o build-asan/tlv_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/tlv_test + build-asan/tlv_test coverage: all + rm -f build-coverage/*.gcda build-coverage/tlv_test + +clean: + rm -rf build-coverage build-asan diff --git a/test/gap/Makefile b/test/gap/Makefile index b9677ea94..66ef31aa1 100644 --- a/test/gap/Makefile +++ b/test/gap/Makefile @@ -6,8 +6,6 @@ BTSTACK_ROOT = ../.. CFLAGS = -DUNIT_TEST -x c++ -g -Wall -Wnarrowing -Wconversion-null -I. -I${BTSTACK_ROOT}/src CFLAGS += -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -25,32 +23,44 @@ COMMON = \ hci_dump.c \ le_device_db_memory.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/test_le_scan +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/test_le_scan build-asan/test_le_scan + +build-%: + mkdir -p $@ # compile .ble description -build-coverage/profile.h: profile.gatt | build-coverage +build-%/profile.h: profile.gatt | build-% python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/test_le_scan: ${COMMON_OBJ} test_le_scan.o | build-coverage - ${CC} ${COMMON_OBJ} test_le_scan.o ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/test_le_scan: ${COMMON_OBJ_COVERAGE} build-coverage/test_le_scan.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/test_le_scan: ${COMMON_OBJ_ASAN} build-asan/test_le_scan.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/test_le_scan + build-asan/test_le_scan coverage: all + rm -f build-coverage/*.gcda build-coverage/test_le_scan clean: - rm -f test_le_scan - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/gatt_client/Makefile b/test/gatt_client/Makefile index f6ccd39af..68acc3bf2 100644 --- a/test/gatt_client/Makefile +++ b/test/gatt_client/Makefile @@ -5,8 +5,6 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -DUNIT_TEST -x c++ -g -Wall -Wnarrowing -Wconversion-null -I. -Ibuild-coverage -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -27,36 +25,52 @@ COMMON = \ le_device_db_memory.c \ mock.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/gatt_client_test build-coverage/le_central +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/gatt_client_test build-coverage/le_central build-asan/gatt_client_test build-asan/le_central + +build-%: + mkdir -p $@ # compile .ble description -build-coverage/profile.h: profile.gatt | build-coverage +build-%/profile.h: profile.gatt | build-% python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/gatt_client_test: profile.h ${COMMON_OBJ} build-coverage/gatt_client_test.o expected_results.h | build-coverage - ${CC} ${COMMON_OBJ} build-coverage/gatt_client_test.o ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ -build-coverage/le_central: ${COMMON_OBJ} build-coverage/le_central.o | build-coverage - ${CC} ${COMMON_OBJ} build-coverage/le_central.o ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/gatt_client_test: ${COMMON_OBJ_COVERAGE} build-coverage/profile.h build-coverage/gatt_client_test.o expected_results.h | build-coverage + ${CC} $(filter-out build-coverage/profile.h expected_results.h,$^) ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/le_central: ${COMMON_OBJ_COVERAGE} build-coverage/le_central.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/gatt_client_test: ${COMMON_OBJ_ASAN} build-asan/profile.h build-asan/gatt_client_test.o expected_results.h | build-asan + ${CC} $(filter-out build-asan/profile.h expected_results.h,$^) ${LDFLAGS_ASAN} -o $@ + +build-asan/le_central: ${COMMON_OBJ_ASAN} build-asan/le_central.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/gatt_client_test - build-coverage/le_central + build-asan/gatt_client_test + build-asan/le_central coverage: all + rm -f build-coverage/*.gcda build-coverage/gatt_client_test build-coverage/le_central clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/gatt_server/Makefile b/test/gatt_server/Makefile index 54a9dd65b..df125b3fd 100644 --- a/test/gatt_server/Makefile +++ b/test/gatt_server/Makefile @@ -7,8 +7,6 @@ BTSTACK_ROOT = ../.. CFLAGS = -DUNIT_TEST -x c++ -g -Wall -Wnarrowing -Wconversion-null -I. -I../ CFLAGS += -I${BTSTACK_ROOT}/src CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -42,31 +40,45 @@ COMMON = \ rijndael.c \ ublox_spp_service_server.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/gatt_server_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + + +all: build-coverage/gatt_server_test build-asan/gatt_server_test + +build-%: + mkdir -p $@ # compile .ble description -build-coverage/profile.h: profile.gatt | build-coverage +build-%/profile.h: profile.gatt | build-% python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/gatt_server_test: build-coverage/profile.h ${COMMON_OBJ} build-coverage/gatt_server_test.o | build-coverage - ${CC} ${COMMON_OBJ} build-coverage/gatt_server_test.o ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/gatt_server_test: ${COMMON_OBJ_COVERAGE} build-coverage/profile.h build-coverage/gatt_server_test.o | build-coverage + ${CC} $(filter-out build-coverage/profile.h,$^) ${LDFLAGS_COVERAGE} -o $@ + +build-asan/gatt_server_test: ${COMMON_OBJ_ASAN} build-asan/profile.h build-asan/gatt_server_test.o | build-asan + ${CC} $(filter-out build-asan/profile.h,$^) ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/gatt_server_test + build-asan/gatt_server_test coverage: all + rm -f build-coverage/*.gcda build-coverage/gatt_server_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/gatt_service/Makefile b/test/gatt_service/Makefile index db372b153..d18ad01a6 100644 --- a/test/gatt_service/Makefile +++ b/test/gatt_service/Makefile @@ -8,8 +8,6 @@ CFLAGS = -DUNIT_TEST -x c++ -g -Wall -Wnarrowing -Wconversion-null -Ibuild-cove CFLAGS += -I${BTSTACK_ROOT}/src CFLAGS += -I${BTSTACK_ROOT}/test/mock CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/ble @@ -37,38 +35,60 @@ COMMON = \ ublox_spp_service_server.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/battery_service_test build-coverage/device_information_service_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) -build-coverage/battery_service_profile.h: battery_service_profile.gatt | build-coverage + +all: build-coverage/battery_service_test build-coverage/device_information_service_test \ + build-asan/battery_service_test build-asan/device_information_service_test + + +build-%: + mkdir -p $@ + +build-%/battery_service_profile.h: battery_service_profile.gatt | build-% python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ -build-coverage/device_information_service_profile.h: device_information_service.gatt| build-coverage +build-%/device_information_service_profile.h: device_information_service.gatt| build-% python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + build-coverage/%.o: %.c | build-coverage ${CC} -c $(CFLAGS) $< -o $@ -build-coverage/battery_service_test: build-coverage/battery_service_profile.h ${COMMON_OBJ} build-coverage/battery_service_test.o | build-coverage - ${CC} ${COMMON_OBJ} build-coverage//battery_service_test.o ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/battery_service_test: build-coverage/battery_service_profile.h ${COMMON_OBJ_COVERAGE} build-coverage/battery_service_test.o | build-coverage + ${CC} $(filter-out build-coverage/battery_service_profile.h,$^) ${LDFLAGS_COVERAGE} -o $@ -build-coverage/device_information_service_test: build-coverage/device_information_service_profile.h ${COMMON_OBJ} build-coverage/device_information_service_test.o | build-coverage - ${CC} ${COMMON_OBJ} build-coverage//device_information_service_test.o ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/device_information_service_test: build-coverage/device_information_service_profile.h ${COMMON_OBJ_COVERAGE} build-coverage/device_information_service_test.o | build-coverage + ${CC} $(filter-out build-coverage/device_information_service_profile.h,$^) ${LDFLAGS_COVERAGE} -o $@ + +build-asan/battery_service_test: build-asan/battery_service_profile.h ${COMMON_OBJ_ASAN} build-asan/battery_service_test.o | build-asan + ${CC} $(filter-out build-asan/battery_service_profile.h,$^) ${LDFLAGS_ASAN} -o $@ + +build-asan/device_information_service_test: build-asan/device_information_service_profile.h ${COMMON_OBJ_ASAN} build-asan/device_information_service_test.o | build-asan + ${CC} $(filter-out build-asan/device_information_service_profile.h,$^) ${LDFLAGS_ASAN} -o $@ test: all build-coverage/battery_service_test build-coverage/device_information_service_test coverage: all + rm -f build-coverage/*.gcda build-coverage/battery_service_test build-coverage/device_information_service_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/hfp/Makefile b/test/hfp/Makefile index f40ff9221..182f5f264 100644 --- a/test/hfp/Makefile +++ b/test/hfp/Makefile @@ -40,60 +40,84 @@ MOCK = \ hci_dump.c \ sdp_util.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) -MOCK_OBJ = $(addprefix build-coverage/,$(MOCK:.c=.o)) +CFLAGS = -g -Wall -Wmissing-prototypes -Wnarrowing +# CFLAGS += -Werror +CFLAGS += -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/src/classic -I${POSIX_ROOT} -I${BTSTACK_ROOT}/include +# CFLAGS += -D OCTAVE_OUTPUT + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address + +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) +MOCK_OBJ_COVERAGE = $(addprefix build-coverage/,$(MOCK:.c=.o)) +MOCK_OBJ_ASAN = $(addprefix build-asan/, $(MOCK:.c=.o)) + # CC = gcc-fsf-4.9 VPATH += ${BTSTACK_ROOT}/src VPATH += ${BTSTACK_ROOT}/src/classic VPATH += ${BTSTACK_ROOT}/platform/posix -CFLAGS = -g -Wall -Wmissing-prototypes -Wnarrowing -# CFLAGS += -Werror -CFLAGS += -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/src/classic -I${POSIX_ROOT} -I${BTSTACK_ROOT}/include -# CFLAGS += -D OCTAVE_OUTPUT -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS_CPPUTEST += -lCppUTest -lCppUTestExt - EXAMPLES = hfp_at_parser_test hfp_ag_client_test hfp_hf_client_test cvsd_plc_test hfp_link_settings_test -all: $(addprefix build-coverage/,${EXAMPLES}) pklg_cvsd_test +all: $(addprefix build-coverage/,${EXAMPLES}) $(addprefix build-asan/,${EXAMPLES}) build-asan/pklg_cvsd_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ -clean: - rm -rf *.o $(EXAMPLES) $(CLIENT_EXAMPLES) *.dSYM *.wav results/* pklg/*.wav - rm -f *.gcno *.gcda build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/hfp_at_parser_test: ${COMMON_OBJ} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_at_parser_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS_CPPUTEST} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ -build-coverage/hfp_hf_client_test: ${MOCK_OBJ} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_hf_client_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS_CPPUTEST} -o $@ +build-coverage/hfp_at_parser_test: ${COMMON_OBJ_COVERAGE} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_at_parser_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ -build-coverage/hfp_ag_client_test: ${MOCK_OBJ} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_ag_client_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS_CPPUTEST} -o $@ +build-coverage/hfp_hf_client_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_hf_client_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ -build-coverage/cvsd_plc_test: ${COMMON_OBJ} build-coverage/btstack_cvsd_plc.o build-coverage/wav_util.o build-coverage/cvsd_plc_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS_CPPUTEST} -o $@ +build-coverage/hfp_ag_client_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_gsm_model.o build-coverage/hfp_ag.o build-coverage/hfp.o build-coverage/hfp_ag_client_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ -build-coverage/hfp_link_settings_test: ${MOCK_OBJ} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_link_settings_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS_CPPUTEST} -o $@ +build-coverage/cvsd_plc_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_cvsd_plc.o build-coverage/wav_util.o build-coverage/cvsd_plc_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ -pklg_cvsd_test: build-coverage/hci_dump.o build-coverage/btstack_util.o build-coverage/btstack_cvsd_plc.o build-coverage/wav_util.o build-coverage/pklg_cvsd_test.o | build-coverage - ${CC} $^ ${CFLAGS} -o $@ +build-coverage/hfp_link_settings_test: ${MOCK_OBJ_COVERAGE} build-coverage/hfp_hf.o build-coverage/hfp.o build-coverage/hfp_link_settings_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + + +build-asan/hfp_at_parser_test: ${COMMON_OBJ_ASAN} build-asan/hfp_gsm_model.o build-asan/hfp_ag.o build-asan/hfp.o build-asan/hfp_at_parser_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/hfp_hf_client_test: ${MOCK_OBJ_ASAN} build-asan/hfp_hf.o build-asan/hfp.o build-asan/hfp_hf_client_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/hfp_ag_client_test: ${MOCK_OBJ_ASAN} build-asan/hfp_gsm_model.o build-asan/hfp_ag.o build-asan/hfp.o build-asan/hfp_ag_client_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/cvsd_plc_test: ${COMMON_OBJ_ASAN} build-asan/btstack_cvsd_plc.o build-asan/wav_util.o build-asan/cvsd_plc_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/hfp_link_settings_test: ${MOCK_OBJ_ASAN} build-asan/hfp_hf.o build-asan/hfp.o build-asan/hfp_link_settings_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/pklg_cvsd_test: build-asan/hci_dump.o build-asan/btstack_util.o build-asan/btstack_cvsd_plc.o build-asan/wav_util.o build-asan/pklg_cvsd_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all mkdir -p results - build-coverage/hfp_at_parser_test - build-coverage/hfp_ag_client_test - build-coverage/hfp_hf_client_test - build-coverage/cvsd_plc_test - build-coverage/hfp_link_settings_test + build-asan/hfp_at_parser_test + build-asan/hfp_ag_client_test + build-asan/hfp_hf_client_test + build-asan/cvsd_plc_test + build-asan/hfp_link_settings_test coverage: all mkdir -p results @@ -103,9 +127,13 @@ coverage: all build-coverage/cvsd_plc_test build-coverage/hfp_link_settings_test -pklg-test: build-coverage/pklg_cvsd_test - ./pklg_cvsd_test pklg/test1 - ./pklg_cvsd_test pklg/test2 - ./pklg_cvsd_test pklg/test3 - ./pklg_cvsd_test pklg/test4 - ./pklg_cvsd_test pklg/test5 +pklg-test: build-asan/pklg_cvsd_test + build-asan/pklg_cvsd_test pklg/test1 + build-asan/pklg_cvsd_test pklg/test2 + build-asan/pklg_cvsd_test pklg/test3 + build-asan/pklg_cvsd_test pklg/test4 + build-asan/pklg_cvsd_test pklg/test5 + +clean: + rm -rf build-coverage build-asan + rm -rf *.wav results/* pklg/*.wav diff --git a/test/hid_parser/Makefile b/test/hid_parser/Makefile index 8326bc8be..391044946 100644 --- a/test/hid_parser/Makefile +++ b/test/hid_parser/Makefile @@ -8,8 +8,6 @@ CPPFLAGS = -x c++ -Wall -Wno-unused CFLAGS = -DUNIT_TEST -g CFLAGS += -I. -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src COMMON = \ @@ -17,27 +15,42 @@ COMMON = \ btstack_hid_parser.c \ hci_dump.c -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/hid_parser_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/hid_parser_test build-asan/hid_parser_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/hid_parser_test: ${COMMON_OBJ_COVERAGE} build-coverage/hid_parser_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/hid_parser_test: ${COMMON_OBJ_ASAN} build-asan/hid_parser_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/hid_parser_test: ${COMMON_OBJ} build-coverage/hid_parser_test.o | build-coverage - ${CC} ${CFLAGS} $^ ${LDFLAGS} -o $@ test: all - build-coverage/hid_parser_test + build-asan/hid_parser_test coverage: all + rm -f build-coverage/*.gcda build-coverage/hid_parser_test clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/le_device_db_tlv/Makefile b/test/le_device_db_tlv/Makefile index 4eedf5952..40638f016 100644 --- a/test/le_device_db_tlv/Makefile +++ b/test/le_device_db_tlv/Makefile @@ -8,7 +8,6 @@ CFLAGS = -DUNIT_TEST -x c++ -g -Wall -Wnarrowing -Wconversion-null CFLAGS += -I. CFLAGS += -I${BTSTACK_ROOT}/src CFLAGS += -I${BTSTACK_ROOT}/platform/embedded -# CFLAGS += -fprofile-arcs -ftest-coverage -fsanitize=address LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src @@ -26,28 +25,39 @@ COMMON = \ btstack_tlv_flash_bank.c \ hal_flash_bank_memory.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/le_device_db_tlv_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/le_device_db_tlv_test build-asan/le_device_db_tlv_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/le_device_db_tlv_test: ${COMMON_OBJ} build-coverage/le_device_db_tlv_test.o | build-coverage - ${CC} ${COMMON_OBJ} build-coverage/le_device_db_tlv_test.o ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/le_device_db_tlv_test: ${COMMON_OBJ_COVERAGE} build-coverage/le_device_db_tlv_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/le_device_db_tlv_test: ${COMMON_OBJ_ASAN} build-asan/le_device_db_tlv_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/le_device_db_tlv_test + build-asan/le_device_db_tlv_test coverage: all + rm -f build-coverage/*.gcda build-coverage/le_device_db_tlv_test clean: - rm -f le_device_db_tlv_test - rm -f *.o - rm -rf *.dSYM - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/linked_list/Makefile b/test/linked_list/Makefile index 59753a4de..23d7404b9 100644 --- a/test/linked_list/Makefile +++ b/test/linked_list/Makefile @@ -6,8 +6,6 @@ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage -LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src/ble VPATH += ${BTSTACK_ROOT}/src @@ -18,26 +16,39 @@ COMMON = \ hci_dump.c \ btstack_util.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/btstack_linked_list_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/btstack_linked_list_test build-asan/btstack_linked_list_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/btstack_linked_list_test: ${COMMON_OBJ} build-coverage/btstack_linked_list_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + +build-coverage/btstack_linked_list_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_linked_list_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/btstack_linked_list_test: ${COMMON_OBJ_ASAN} build-asan/btstack_linked_list_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/btstack_linked_list_test + build-asan/btstack_linked_list_test coverage: all + rm -f build-coverage/*.gcda build-coverage/btstack_linked_list_test clean: - rm -f *.gcno *.gcda - rm -fr *.dSYM build-coverage - + rm -rf build-coverage build-asan diff --git a/test/map_client/Makefile b/test/map_client/Makefile index b478134aa..0be4a9207 100644 --- a/test/map_client/Makefile +++ b/test/map_client/Makefile @@ -46,8 +46,8 @@ CORE_OBJ = $(addprefix build-coverage/,$(CORE:.c=.o)) all: map_client_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ diff --git a/test/map_client/map_util.c b/test/map_client/map_util.c index 79afe3cb2..46b9e2731 100644 --- a/test/map_client/map_util.c +++ b/test/map_client/map_util.c @@ -175,7 +175,7 @@ void map_client_parse_message_listing(btstack_packet_handler_t callback, uint16_ int message_found = 0; int handle_found = 0; - char handle[MAP_MESSAGE_HANDLE_SIZE * 2]; + char handle[MAP_MESSAGE_HANDLE_SIZE * 2 + 1]; map_message_handle_t msg_handle; yxml_init(&xml_parser, xml_buffer, sizeof(xml_buffer)); @@ -190,7 +190,7 @@ void map_client_parse_message_listing(btstack_packet_handler_t callback, uint16_ if (message_found == 0) break; message_found = 0; if (strlen(handle) != MAP_MESSAGE_HANDLE_SIZE * 2){ - log_info("message handle string length != 16"); + log_info("message handle string length %u != %u", (unsigned int) strlen(handle), MAP_MESSAGE_HANDLE_SIZE*2); break; } map_message_str_to_handle(handle, msg_handle); @@ -206,6 +206,8 @@ void map_client_parse_message_listing(btstack_packet_handler_t callback, uint16_ break; case YXML_ATTRVAL: if (handle_found == 1) { + if (strlen(xml_parser.data) != 1) break; + if (strlen(handle) >= (MAP_MESSAGE_HANDLE_SIZE * 2)) break; strcat(handle, xml_parser.data); break; } diff --git a/test/map_test/Makefile b/test/map_test/Makefile index f9b5ce9fc..be2185122 100644 --- a/test/map_test/Makefile +++ b/test/map_test/Makefile @@ -18,8 +18,6 @@ CFLAGS += -I${BTSTACK_ROOT}/3rd-party/yxml VPATH += ${BTSTACK_ROOT}/test/map_client CFLAGS += -I${BTSTACK_ROOT}/test/map_client -CFLAGS += -fprofile-arcs -ftest-coverage - COMMON = \ yxml.c \ btstack_util.c \ @@ -27,26 +25,43 @@ COMMON = \ map_util.c \ btstack_util.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/map_xml_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/map_xml_test build-asan/map_xml_test + + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/map_xml_test: ${COMMON_OBJ_COVERAGE} build-coverage/map_xml_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/map_xml_test: ${COMMON_OBJ_ASAN} build-asan/map_xml_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/map_xml_test: ${COMMON_OBJ} build-coverage/map_xml_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/map_xml_test + build-asan/map_xml_test coverage: all + rm -f build-coverage/*.gcda build-coverage/map_xml_test clean: - rm -fr map_xml_test *.dSYM *.o ../src/*.o - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/maths/Makefile b/test/maths/Makefile index 95eb4f899..eb83298d3 100644 --- a/test/maths/Makefile +++ b/test/maths/Makefile @@ -8,25 +8,41 @@ CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include LDFLAGS += -lCppUTest -lCppUTestExt -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/sqrt_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/sqrt_test build-asan/sqrt_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/sqrt_test: ${COMMON_OBJ} build-coverage/sqrt_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/sqrt_test: ${COMMON_OBJ_COVERAGE} build-coverage/sqrt_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/sqrt_test: ${COMMON_OBJ_ASAN} build-asan/sqrt_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/sqrt_test + build-asan/sqrt_test coverage: all + rm -f build-coverage/*.gcda build-coverage/sqrt_test clean: - rm -fr build-coverage *.dSYM + rm -rf build-coverage build-asan diff --git a/test/mesh/Makefile b/test/mesh/Makefile index 5c8264134..7ab382550 100644 --- a/test/mesh/Makefile +++ b/test/mesh/Makefile @@ -38,8 +38,6 @@ CFLAGS += -g -DUNIT_TEST -Wall \ -I$(BTSTACK_ROOT)/3rd-party/tinydir \ -I$(BTSTACK_ROOT)/3rd-party/rijndael \ -CFLAGS += -fprofile-arcs -ftest-coverage - CFLAGS += -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wunused-parameter -Wredundant-decls -Wsign-compare VPATH += ${BTSTACK_ROOT}/3rd-party/rijndael @@ -57,65 +55,86 @@ CC_UNIT = g++ CFLAGS += $(shell pkg-config libusb-1.0 --cflags) LDFLAGS += $(shell pkg-config libusb-1.0 --libs) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address + # cppUTest LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -mesh_pts: mesh_pts.h ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${GATT_SERVER_OBJ} ${SM_OBJ} ${MESH_OBJ} main.o mesh_pts.o - ${CC} $(filter-out mesh_pts.h,$^) ${CFLAGS} ${LDFLAGS} -o $@ +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON_OBJ)) +CORE_OBJ_COVERAGE = $(addprefix build-coverage/,$(CORE_OBJ)) +ATT_OBJ_COVERAGE = $(addprefix build-coverage/,$(ATT_OBJ)) +GATT_SERVER_OBJ_COVERAGE = $(addprefix build-coverage/,$(GATT_SERVER_OBJ)) +SM_OB_COVERAGE = $(addprefix build-coverage/,$(SM_OB)) +MESH_OBJ_COVERAGE = $(addprefix build-coverage/,$(MESH_OBJ)) -provisioner: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${SM_OBJ} main.o pb_adv.o mesh_crypto.o provisioning_provisioner.o mesh_keys.o mesh_foundation.o mesh_network.o provisioner.o - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - -sniffer: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${SM_OBJ} main.o mesh_keys.o mesh_network.o mesh_foundation.o sniffer.c - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ - - -build-coverage/mesh_message_test: $(addprefix build-coverage/, mesh_message_test.o mesh_foundation.o mesh_node.o mesh_iv_index_seq_number.o mesh_network.o mesh_peer.o mesh_lower_transport.o mesh_upper_transport.o mesh_virtual_addresses.o mesh_keys.o mesh_crypto.o btstack_memory.o btstack_memory_pool.o btstack_util.o btstack_crypto.o btstack_linked_list.o hci_dump.o uECC.o mock.o rijndael.o hci_cmd.o) - g++ $^ ${CFLAGS} ${LDFLAGS} -o $@ - -build-coverage/provisioning_device_test: $(addprefix build-coverage/, provisioning_device_test.o uECC.o mesh_crypto.o provisioning_device.o btstack_crypto.o btstack_util.o btstack_linked_list.o mesh_node.o mock.o rijndael.o hci_cmd.o hci_dump.o) - ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ - -build-coverage/provisioning_provisioner_test: $(addprefix build-coverage/, provisioning_provisioner_test.o uECC.o mesh_crypto.o provisioning_provisioner.o btstack_crypto.o btstack_util.o btstack_linked_list.o mock.o rijndael.o hci_cmd.o hci_dump.o) - ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ - -build-coverage/mesh_configuration_composition_data_message_test: ${CORE_OBJ} ${COMMON_OBJ} ${ATT_OBJ} ${MESH_OBJ} build-coverage/mesh_configuration_composition_data_message_test.o - ${CC_UNIT} ${CFLAGS} ${LDFLAGS} $^ -lCppUTest -lCppUTestExt -o $@ +COMMON_OBJ_ASAN = $(addprefix build-asan/,$(COMMON_OBJ)) +CORE_OBJ_ASAN = $(addprefix build-asan/,$(CORE_OBJ)) +ATT_OBJ_ASAN = $(addprefix build-asan/,$(ATT_OBJ)) +GATT_SERVER_OBJ_ASAN = $(addprefix build-asan/,$(GATT_SERVER_OBJ)) +SM_OB_ASAN = $(addprefix build-asan/,$(SM_OB)) +MESH_OBJ_ASAN = $(addprefix build-asan/,$(MESH_OBJ)) TESTS_SRCS = mesh_message_test provisioning_device_test provisioning_provisioner_test mesh_configuration_composition_data_message_test -EXAMPLES = mesh_pts provisioner sniffer +EXAMPLES = mesh_pts provisioner sniffer + + +all: $(addprefix build-asan/,$(EXAMPLES)) +tests: $(addprefix build-asan/,$(TESTS_SRCS)) + +build-%: + mkdir -p $@ -all: ${EXAMPLES} -tests: $(addprefix build-coverage/,$(TESTS_SRCS)) build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) ${CPPFLAGS} $< -o $@ build-coverage/%.o: %.cpp | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) ${CPPFLAGS} $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) ${CPPFLAGS} $< -o $@ + +build-asan/%.o: %.cpp | build-asan + ${CC} -c $(CFLAGS_ASAN) ${CPPFLAGS} $< -o $@ + + +build-asan/mesh_pts: mesh_pts.h ${CORE_OBJ_ASAN} ${COMMON_OBJ_ASAN} ${ATT_OBJ_ASAN} ${GATT_SERVER_OBJ_ASAN} ${SM_OBJ_ASAN} ${MESH_OBJ_ASAN} build-asan/main.o build-asan/mesh_pts.o + ${CC} $(filter-out mesh_pts.h,$^) ${LDFLAGS_ASAN} -o $@ + +build-asan/provisioner: ${CORE_OBJ_ASAN} ${COMMON_OBJ_ASAN} ${ATT_OBJ_ASAN} ${SM_OBJ_ASAN} build-asan/main.o build-asan/pb_adv.o build-asan/mesh_crypto.o build-asan/provisioning_provisioner.o build-asan/mesh_keys.o build-asan/mesh_foundation.o build-asan/mesh_network.o build-asan/provisioner.o + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/sniffer: ${CORE_OBJ_ASAN} ${COMMON_OBJ_ASAN} ${ATT_OBJ_ASAN} ${SM_OBJ_ASAN} build-asan/main.o build-asan/mesh_keys.o build-asan/mesh_network.o build-asan/mesh_foundation.o build-asan/sniffer.o + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + + +build-asan/mesh_message_test: $(addprefix build-asan/, mesh_message_test.o mesh_foundation.o mesh_node.o mesh_iv_index_seq_number.o mesh_network.o mesh_peer.o mesh_lower_transport.o mesh_upper_transport.o mesh_virtual_addresses.o mesh_keys.o mesh_crypto.o btstack_memory.o btstack_memory_pool.o btstack_util.o btstack_crypto.o btstack_linked_list.o hci_dump.o uECC.o mock.o rijndael.o hci_cmd.o) | build-asan + g++ $^ ${CFLAGS} ${LDFLAGS_ASAN} -o $@ + +build-asan/provisioning_device_test: $(addprefix build-asan/, provisioning_device_test.o uECC.o mesh_crypto.o provisioning_device.o btstack_crypto.o btstack_util.o btstack_linked_list.o mesh_node.o mock.o rijndael.o hci_cmd.o hci_dump.o) | build-asan + ${CC_UNIT} ${LDFLAGS_ASAN} $^ -lCppUTest -lCppUTestExt -o $@ + +build-asan/provisioning_provisioner_test: $(addprefix build-asan/, provisioning_provisioner_test.o uECC.o mesh_crypto.o provisioning_provisioner.o btstack_crypto.o btstack_util.o btstack_linked_list.o mock.o rijndael.o hci_cmd.o hci_dump.o) | build-asan + ${CC_UNIT} ${LDFLAGS_ASAN} $^ -lCppUTest -lCppUTestExt -o $@ + +build-asan/mesh_configuration_composition_data_message_test: ${CORE_OBJ_ASAN} ${COMMON_OBJ_ASAN} ${ATT_OBJ_ASAN} ${MESH_OBJ_ASAN} build-asan/mesh_configuration_composition_data_message_test.o | build-asan + ${CC_UNIT} ${LDFLAGS_ASAN} $^ -lCppUTest -lCppUTestExt -o $@ -build-coverage: - mkdir -p build-coverage test: tests # Ignore leaks in mesh message test as tests stop before all PDUs are fully processed - ASAN_OPTIONS=detect_leaks=0 build-coverage/mesh_message_test - build-coverage/provisioning_device_test - build-coverage/provisioning_provisioner_test - build-coverage/mesh_configuration_composition_data_message_test + ASAN_OPTIONS=detect_leaks=0 build-asan/mesh_message_test + build-asan/provisioning_device_test + build-asan/provisioning_provisioner_test + build-asan/mesh_configuration_composition_data_message_test coverage: tests - # Ignore leaks in mesh message test as tests stop before all PDUs are fully processed - ASAN_OPTIONS=detect_leaks=0 build-coverage/mesh_message_test - build-coverage/provisioning_device_test - build-coverage/provisioning_provisioner_test - build-coverage/mesh_configuration_composition_data_message_test + rm -f build-coverage/*.gcda + @echo "no coverage here" clean: - rm -f *.o *.out *.exe - rm -rf *.dSYM - rm -f ${EXAMPLES} - rm -f mesh_provisioning_device.h - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/obex/Makefile b/test/obex/Makefile index 8d372aa83..3b00b10fb 100644 --- a/test/obex/Makefile +++ b/test/obex/Makefile @@ -6,7 +6,6 @@ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -I${BTSTACK_ROOT}/include -CFLAGS += -fprofile-arcs -ftest-coverage LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src/ble @@ -19,26 +18,41 @@ COMMON = \ hci_dump.c \ obex_message_builder.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/obex_message_builder_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/obex_message_builder_test build-asan/obex_message_builder_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/obex_message_builder_test: ${COMMON_OBJ} build-coverage/obex_message_builder_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/obex_message_builder_test: ${COMMON_OBJ_COVERAGE} build-coverage/obex_message_builder_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/obex_message_builder_test: ${COMMON_OBJ_ASAN} build-asan/obex_message_builder_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-coverage/obex_message_builder_test + build-asan/obex_message_builder_test coverage: all + rm -f build-coverage/*.gcda build-coverage/obex_message_builder_test clean: - rm -fr build-coverage *.dSYM *.o - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/ring_buffer/Makefile b/test/ring_buffer/Makefile index 52f8f277f..a334a6998 100644 --- a/test/ring_buffer/Makefile +++ b/test/ring_buffer/Makefile @@ -6,7 +6,6 @@ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I. -I../ -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src @@ -14,26 +13,42 @@ VPATH += ${BTSTACK_ROOT}/src COMMON = \ btstack_ring_buffer.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/btstack_ring_buffer_test +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/btstack_ring_buffer_test build-asan/btstack_ring_buffer_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/btstack_ring_buffer_test: ${COMMON_OBJ_COVERAGE} build-coverage/btstack_ring_buffer_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/btstack_ring_buffer_test: ${COMMON_OBJ_ASAN} build-asan/btstack_ring_buffer_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/btstack_ring_buffer_test: ${COMMON_OBJ} build-coverage/btstack_ring_buffer_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/btstack_ring_buffer_test + build-asan/btstack_ring_buffer_test coverage: all + rm -f build-coverage/*.gcda build-coverage/btstack_ring_buffer_test clean: - rm -fr build-coverage *.dSYM *.o ../src/*.o *.gcda *.gcno - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/sdp/Makefile b/test/sdp/Makefile index d08dbaad0..97db6f836 100644 --- a/test/sdp/Makefile +++ b/test/sdp/Makefile @@ -8,8 +8,6 @@ CFLAGS = -g -Wall \ -I.. \ -I${BTSTACK_ROOT}/src \ -CFLAGS += -fprofile-arcs -ftest-coverage - LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src @@ -55,27 +53,43 @@ COMMON = \ spp_server.c \ btstack_hid_parser.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/sdp_record_builder +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + + +all: build-coverage/sdp_record_builder build-asan/sdp_record_builder + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/sdp_record_builder: ${COMMON_OBJ_COVERAGE} build-coverage/sdp_record_builder.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/sdp_record_builder: ${COMMON_OBJ_ASAN} build-asan/sdp_record_builder.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/sdp_record_builder: ${COMMON_OBJ} build-coverage/sdp_record_builder.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/sdp_record_builder + build-asan/sdp_record_builder coverage: all + rm -f build-coverage/*.gcda build-coverage/sdp_record_builder clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan diff --git a/test/sdp_client/Makefile b/test/sdp_client/Makefile index cbb79a9d9..dfea8c1ea 100644 --- a/test/sdp_client/Makefile +++ b/test/sdp_client/Makefile @@ -6,9 +6,7 @@ BTSTACK_ROOT = ../.. CPPUTEST_HOME = ${BTSTACK_ROOT}/test/cpputest CFLAGS = -g -Wall -I.. -I${BTSTACK_ROOT}/src -CFLAGS += -fprofile-arcs -ftest-coverage LDFLAGS += -lCppUTest -lCppUTestExt -# -L$(CPPUTEST_HOME) VPATH += ${BTSTACK_ROOT}/src/classic VPATH += ${BTSTACK_ROOT}/src @@ -22,42 +20,67 @@ COMMON = \ hci_dump.c \ btstack_util.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: $(addprefix build-coverage/, sdp_rfcomm_query general_sdp_query service_attribute_search_query service_search_query) +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: $(addprefix build-coverage/, sdp_rfcomm_query general_sdp_query service_attribute_search_query service_search_query) \ + $(addprefix build-asan/, sdp_rfcomm_query general_sdp_query service_attribute_search_query service_search_query) + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ -build-coverage/sdp_rfcomm_query: ${COMMON_OBJ} build-coverage/sdp_client_rfcomm.o build-coverage/sdp_rfcomm_query.o build-coverage/btstack_linked_list.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ -build-coverage/general_sdp_query: ${COMMON_OBJ} build-coverage/general_sdp_query.o build-coverage/btstack_linked_list.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ -build-coverage/service_attribute_search_query: ${COMMON_OBJ} build-coverage/service_attribute_search_query.o build-coverage/btstack_linked_list.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ +build-coverage/sdp_rfcomm_query: ${COMMON_OBJ_COVERAGE} build-coverage/sdp_client_rfcomm.o build-coverage/sdp_rfcomm_query.o build-coverage/btstack_linked_list.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/general_sdp_query: ${COMMON_OBJ_COVERAGE} build-coverage/general_sdp_query.o build-coverage/btstack_linked_list.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/service_attribute_search_query: ${COMMON_OBJ_COVERAGE} build-coverage/service_attribute_search_query.o build-coverage/btstack_linked_list.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-coverage/service_search_query: ${COMMON_OBJ_COVERAGE} build-coverage/service_search_query.o build-coverage/btstack_linked_list.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + + +build-asan/sdp_rfcomm_query: ${COMMON_OBJ_ASAN} build-asan/sdp_client_rfcomm.o build-asan/sdp_rfcomm_query.o build-asan/btstack_linked_list.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/general_sdp_query: ${COMMON_OBJ_ASAN} build-asan/general_sdp_query.o build-asan/btstack_linked_list.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/service_attribute_search_query: ${COMMON_OBJ_ASAN} build-asan/service_attribute_search_query.o build-asan/btstack_linked_list.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ + +build-asan/service_search_query: ${COMMON_OBJ_ASAN} build-asan/service_search_query.o build-asan/btstack_linked_list.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/service_search_query: ${COMMON_OBJ} build-coverage/service_search_query.o build-coverage/btstack_linked_list.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all + ASAN_OPTIONS=detect_leaks=0 build-asan/sdp_rfcomm_query + build-asan/general_sdp_query + build-asan/service_attribute_search_query + build-asan/service_search_query + +coverage: all + rm -f build-coverage/*.gcda ASAN_OPTIONS=detect_leaks=0 build-coverage/sdp_rfcomm_query build-coverage/general_sdp_query build-coverage/service_attribute_search_query build-coverage/service_search_query - -coverage: all - ASAN_OPTIONS=detect_leaks=0 build-coverage//sdp_rfcomm_query - build-coverage//general_sdp_query - build-coverage//service_attribute_search_query - build-coverage//service_search_query - -clean: - rm -f sdp_rfcomm_query general_sdp_query service_attribute_search_query service_search_query *.o *.o - rm -rf *.dSYM - rm -f *.gcno *.gcda +clean: + rm -rf build-coverage build-asan diff --git a/test/security_manager/Makefile b/test/security_manager/Makefile index 78b31d6de..c60e38171 100644 --- a/test/security_manager/Makefile +++ b/test/security_manager/Makefile @@ -5,14 +5,12 @@ CC = g++ BTSTACK_ROOT = ../.. CFLAGS = -DUNIT_TEST -g -CPPFLAGS = -x c++ -Wall -Wno-unused +CFLAGS += -x c++ -Wall -Wno-unused CFLAGS += -I. -I.. -I${BTSTACK_ROOT}/src -#CFLAGS += -I${BTSTACK_ROOT}/platform/posix CFLAGS += -I${BTSTACK_ROOT}/platform/embedded CFLAGS += -I${BTSTACK_ROOT}/3rd-party/mbedtls/include CFLAGS += -I${BTSTACK_ROOT}/3rd-party/micro-ecc CFLAGS += -I${BTSTACK_ROOT}/3rd-party/rijndael -CFLAGS += -fprofile-arcs -ftest-coverage LDFLAGS += -lCppUTest -lCppUTestExt VPATH += ${BTSTACK_ROOT}/src @@ -38,28 +36,44 @@ COMMON = \ btstack_util.c \ btstack_tlv.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) -CORE_OBJ = $(addprefix build-coverage/,$(CORE:.c=.o)) +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -all: build-coverage/security_manager +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +CORE_OBJ_COVERAGE = $(addprefix build-coverage/,$(CORE:.c=.o)) +CORE_OBJ_ASAN = $(addprefix build-asan/, $(CORE:.c=.o)) + +all: build-coverage/security_manager build-asan/security_manager + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) ${CPPFLAGS} $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/security_manager: ${CORE_OBJ_COVERAGE} ${COMMON_OBJ_COVERAGE} build-coverage/security_manager.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/security_manager: ${CORE_OBJ_ASAN} ${COMMON_OBJ_ASAN} build-asan/security_manager.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/security_manager: ${CORE_OBJ} ${COMMON_OBJ} build-coverage/security_manager.o | build-coverage - ${CC} ${CORE_OBJ} ${COMMON_OBJ} security_manager.c ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/security_manager + build-asan/security_manager coverage: all + rm -f build-coverage/*.gcda build-coverage/security_manager clean: - rm -f *.o - rm -rf *.dSYM build-coverage - rm -f *.gcno *.gcda - + rm -rf build-coverage build-asan diff --git a/test/security_manager_sc/Makefile b/test/security_manager_sc/Makefile index d5514dc0a..cc17e04f0 100644 --- a/test/security_manager_sc/Makefile +++ b/test/security_manager_sc/Makefile @@ -85,8 +85,8 @@ build-coverage/%.h: %.gatt all: build-coverage/sm_test -build-coverage: - mkdir -p build-coverage +build-%: + mkdir -p $@ build-coverage/sm_test.h: sm_test.gatt | build-coverage python3 ${BTSTACK_ROOT}/tool/compile_gatt.py $< $@ @@ -112,7 +112,7 @@ test: sm_test coverage: sm_test # delete trace data - find . -name "*.gcda" -type f -delete + rm -f build-coverage/*.gcda # run tests make test # collect traces diff --git a/test/tlv_posix/Makefile b/test/tlv_posix/Makefile index dbec7e050..ac0a270b9 100644 --- a/test/tlv_posix/Makefile +++ b/test/tlv_posix/Makefile @@ -9,8 +9,6 @@ COMMON = \ btstack_linked_list.c \ hci_dump.c \ -COMMON_OBJ = $(addprefix build-coverage/,$(COMMON:.c=.o)) - VPATH = \ ${BTSTACK_ROOT}/src \ ${BTSTACK_ROOT}/src/classic \ @@ -27,26 +25,43 @@ CFLAGS = \ -I${BTSTACK_ROOT}/src \ -I${BTSTACK_ROOT}/platform/posix \ -CFLAGS += -fprofile-arcs -ftest-coverage LDFLAGS += -lCppUTest -lCppUTestExt -all: build-coverage/tlv_test +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -build-coverage: - mkdir -p build-coverage +LDFLAGS += -lCppUTest -lCppUTestExt +LDFLAGS_COVERAGE = ${LDFLAGS} -fprofile-arcs -ftest-coverage +LDFLAGS_ASAN = ${LDFLAGS} -fsanitize=address + +COMMON_OBJ_COVERAGE = $(addprefix build-coverage/,$(COMMON:.c=.o)) +COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) + +all: build-coverage/tlv_test build-asan/tlv_test + +build-%: + mkdir -p $@ build-coverage/%.o: %.c | build-coverage - ${CC} -c $(CFLAGS) $< -o $@ + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +build-asan/%.o: %.c | build-asan + ${CC} -c $(CFLAGS_ASAN) $< -o $@ + + +build-coverage/tlv_test: ${COMMON_OBJ_COVERAGE} build-coverage/tlv_test.o | build-coverage + ${CC} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/tlv_test: ${COMMON_OBJ_ASAN} build-asan/tlv_test.o | build-asan + ${CC} $^ ${LDFLAGS_ASAN} -o $@ -build-coverage/tlv_test: ${COMMON_OBJ} build-coverage/tlv_test.o | build-coverage - ${CC} $^ ${CFLAGS} ${LDFLAGS} -o $@ test: all - build-coverage/tlv_test + build-asan/tlv_test coverage: all + rm -f build-coverage/*.gcda build-coverage/tlv_test clean: - rm -rf *.o build-coverage *.dSYM *.pklg - rm -f *.gcno *.gcda + rm -rf build-coverage build-asan