diff --git a/test/flash_tlv/CMakeLists.txt b/test/flash_tlv/CMakeLists.txt new file mode 100644 index 000000000..d6a938253 --- /dev/null +++ b/test/flash_tlv/CMakeLists.txt @@ -0,0 +1,35 @@ +cmake_minimum_required (VERSION 3.5) + +project(test-tlv-test) + +set (BTSTACK_ROOT ${CMAKE_SOURCE_DIR}/../../) + +# add CppUTest +include_directories("/usr/local/include") +link_directories("/usr/local/lib") +link_libraries( CppUTest ) +link_libraries( CppUTestExt ) + +include_directories(../../3rd-party/micro-ecc) +include_directories(../../3rd-party/rijndael) +include_directories(../../platform/embedded) +include_directories(../../platform/posix) +include_directories(../../src) +include_directories(..) + +# test ENABLE_TLV_FLASH_WRITE_ONCE +add_compile_definitions(ENABLE_TLV_FLASH_WRITE_ONCE) + +# Enable ASAN +add_compile_options( -g -fsanitize=address) +add_link_options( -fsanitize=address) + +add_executable(tlv_test + tlv_test.cpp + ${BTSTACK_ROOT}/src/btstack_util.c + ${BTSTACK_ROOT}/src/hci_dump.c + ${BTSTACK_ROOT}/src/classic/btstack_link_key_db_tlv.c + ${BTSTACK_ROOT}/platform/embedded/btstack_tlv_flash_bank.c + ${BTSTACK_ROOT}/platform/embedded/hal_flash_bank_memory.c + ${BTSTACK_ROOT}/platform/posix/hci_dump_posix_fs.c +) diff --git a/test/flash_tlv/Makefile b/test/flash_tlv/Makefile index 168e3b04b..bbd17e05c 100644 --- a/test/flash_tlv/Makefile +++ b/test/flash_tlv/Makefile @@ -31,7 +31,7 @@ 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 +all: build-coverage/tlv_test build-asan/tlv_test build-asan/tlv_test_write_once build-%: mkdir -p $@ @@ -42,20 +42,34 @@ build-coverage/%.o: %.c | build-coverage build-coverage/%.o: %.cpp | build-coverage ${CXX} -c $(CFLAGS_COVERAGE) $< -o $@ + build-asan/%.o: %.c | build-asan ${CC} -c $(CFLAGS_ASAN) $< -o $@ + build-asan/%.o: %.cpp | build-asan ${CXX} -c $(CFLAGS_ASAN) $< -o $@ +# write once sets ENABLE_TLV_FLASH_WRITE_ONCE +build-asan/%_write_once.o: %.c | build-asan + ${CC} -DENABLE_TLV_FLASH_WRITE_ONCE -c $(CFLAGS_ASAN) $< -o $@ + +build-asan/%_write_once.o: %.cpp | build-asan + ${CXX} -DENABLE_TLV_FLASH_WRITE_ONCE -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 ${CXX} $^ ${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 ${CXX} $^ ${LDFLAGS_ASAN} -o $@ +build-asan/tlv_test_write_once: ${COMMON_OBJ_ASAN} build-asan/btstack_link_key_db_tlv_write_once.o build-asan/tlv_test_write_once.o | build-asan + ${CXX} $^ ${LDFLAGS_ASAN} -o $@ + test: all build-asan/tlv_test + build-asan/tlv_test_write_once coverage: all rm -f build-coverage/*.gcda diff --git a/test/flash_tlv/tlv_test.cpp b/test/flash_tlv/tlv_test.cpp index 51317f0f8..fe4325649 100644 --- a/test/flash_tlv/tlv_test.cpp +++ b/test/flash_tlv/tlv_test.cpp @@ -329,7 +329,11 @@ TEST(LINK_KEY_DB, KeyReplacement){ int main (int argc, const char * argv[]){ // log into file using HCI_DUMP_PACKETLOGGER format +#ifdef ENABLE_TLV_FLASH_WRITE_ONCE + const char * pklg_path = "hci_dump_write_once.pklg"; +#else const char * pklg_path = "hci_dump.pklg"; +#endif hci_dump_posix_fs_open(pklg_path, HCI_DUMP_PACKETLOGGER); hci_dump_init(hci_dump_posix_fs_get_instance()); printf("Packet Log: %s\n", pklg_path);