From af7c3ae6cd1e2bcfd24e6d0654508ecf775c9e5d Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Tue, 30 Nov 2021 11:18:56 +0100 Subject: [PATCH] test: split l2cap-channel into l2cap-cbm and l2cap-ecbm --- test/Makefile | 5 +- .../CMakeLists.txt | 0 test/l2cap-cbm/Makefile | 78 +++++++++++++++++++ test/l2cap-cbm/btstack_config.h | 32 ++++++++ .../l2cap_cbm_test.cpp | 0 test/l2cap-ecbm/CMakeLists.txt | 51 ++++++++++++ test/{l2cap-channel => l2cap-ecbm}/Makefile | 9 --- .../btstack_config.h | 0 .../l2cap_ecbm_test.cpp | 0 9 files changed, 164 insertions(+), 11 deletions(-) rename test/{l2cap-channel => l2cap-cbm}/CMakeLists.txt (100%) create mode 100644 test/l2cap-cbm/Makefile create mode 100644 test/l2cap-cbm/btstack_config.h rename test/{l2cap-channel => l2cap-cbm}/l2cap_cbm_test.cpp (100%) create mode 100644 test/l2cap-ecbm/CMakeLists.txt rename test/{l2cap-channel => l2cap-ecbm}/Makefile (83%) rename test/{l2cap-channel => l2cap-ecbm}/btstack_config.h (100%) rename test/{l2cap-channel => l2cap-ecbm}/l2cap_ecbm_test.cpp (100%) diff --git a/test/Makefile b/test/Makefile index ef77d9ca7..fd6aed571 100644 --- a/test/Makefile +++ b/test/Makefile @@ -22,7 +22,8 @@ SUBDIRS = \ gatt_service \ hfp \ hid_parser \ - l2cap-channel \ + l2cap-cbm \ + l2cap-ecbm \ le_device_db_tlv \ linked_list \ map_test \ @@ -59,7 +60,7 @@ SUBDIRS_BLE = \ gatt_server \ gatt_service \ hid_parser \ - l2cap-channel \ + l2cap-cbm \ le_device_db_tlv \ linked_list \ ring_buffer \ diff --git a/test/l2cap-channel/CMakeLists.txt b/test/l2cap-cbm/CMakeLists.txt similarity index 100% rename from test/l2cap-channel/CMakeLists.txt rename to test/l2cap-cbm/CMakeLists.txt diff --git a/test/l2cap-cbm/Makefile b/test/l2cap-cbm/Makefile new file mode 100644 index 000000000..9de5f581c --- /dev/null +++ b/test/l2cap-cbm/Makefile @@ -0,0 +1,78 @@ +CC = gcc +CXX = g++ + +# Requirements: cpputest.github.io + +BTSTACK_ROOT = ../.. + +CFLAGS = -DUNIT_TEST -g -Wall -Wnarrowing -Wconversion-null -Ibuild-coverage -I./ +CFLAGS += -I${BTSTACK_ROOT}/src +CFLAGS += -I${BTSTACK_ROOT}/src/ble +CFLAGS += -I${BTSTACK_ROOT}/platform/posix +CFLAGS += -I${BTSTACK_ROOT}/platform/embedded +# CFLAGS += -D ENABLE_TESTING_SUPPORT + +VPATH += ${BTSTACK_ROOT}/src +VPATH += ${BTSTACK_ROOT}/src/ble +VPATH += ${BTSTACK_ROOT}/platform/embedded +VPATH += ${BTSTACK_ROOT}/platform/posix + +COMMON = \ + btstack_linked_list.c \ + btstack_util.c \ + hci.c \ + hci_cmd.c \ + ad_parser.c \ + l2cap.c \ + l2cap_signaling.c \ + btstack_memory.c \ + btstack_run_loop.c \ + btstack_run_loop_embedded.c \ + hci_dump.c \ + hci_dump_posix_stdout.c \ + +CFLAGS_COVERAGE = ${CFLAGS} -fprofile-arcs -ftest-coverage +CFLAGS_ASAN = ${CFLAGS} -fsanitize=address -DHAVE_ASSERT + +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/l2cap_cbm_test build-asan/l2cap_cbm_test \ + +build-%: + mkdir -p $@ + +build-coverage/%.o: %.c | build-coverage + ${CC} -c $(CFLAGS_COVERAGE) $< -o $@ + +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 $@ + +build-coverage/l2cap_cbm_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_cbm_test.o | build-coverage + ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ + +build-asan/l2cap_cbm_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_cbm_test.o | build-asan + ${CXX} $^ ${LDFLAGS_ASAN} -o $@ + +test: all + build-asan/l2cap_cbm_test + +coverage: all + rm -f build-coverage/*.gcda + build-coverage/l2cap_cbm_test + +clean: + rm -rf build-coverage build-asan + diff --git a/test/l2cap-cbm/btstack_config.h b/test/l2cap-cbm/btstack_config.h new file mode 100644 index 000000000..2cc80107a --- /dev/null +++ b/test/l2cap-cbm/btstack_config.h @@ -0,0 +1,32 @@ +// +// btstack_config.h for most tests +// + +#ifndef BTSTACK_CONFIG_H +#define BTSTACK_CONFIG_H + +// Port related features +#define HAVE_BTSTACK_STDIN +#define HAVE_MALLOC +#define HAVE_POSIX_FILE_IO +#define HAVE_POSIX_TIME + + +// BTstack features that can be enabled +#define ENABLE_BLE +#define ENABLE_LOG_ERROR +#define ENABLE_LOG_INFO +#define ENABLE_PRINTF_HEXDUMP + +#define ENABLE_LE_CENTRAL +#define ENABLE_LE_PERIPHERAL +#define ENABLE_L2CAP_LE_CREDIT_BASED_FLOW_CONTROL_MODE + +// for ready-to-use hci channels +#define FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION + +// BTstack configuration. buffers, sizes, ... +#define HCI_ACL_PAYLOAD_SIZE 52 +#define HCI_INCOMING_PRE_BUFFER_SIZE 4 + +#endif diff --git a/test/l2cap-channel/l2cap_cbm_test.cpp b/test/l2cap-cbm/l2cap_cbm_test.cpp similarity index 100% rename from test/l2cap-channel/l2cap_cbm_test.cpp rename to test/l2cap-cbm/l2cap_cbm_test.cpp diff --git a/test/l2cap-ecbm/CMakeLists.txt b/test/l2cap-ecbm/CMakeLists.txt new file mode 100644 index 000000000..1a87fd5d8 --- /dev/null +++ b/test/l2cap-ecbm/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required (VERSION 3.5) +project(gatt-client-test) + +# add CppUTest +include_directories("/usr/local/include") +link_directories("/usr/local/lib") +link_libraries( CppUTest ) +link_libraries( CppUTestExt ) + +# set include paths +include_directories(.) +include_directories(../../src) +include_directories(../mock) +include_directories(../../platform/embedded) +include_directories(../../platform/posix) +include_directories( ${CMAKE_CURRENT_BINARY_DIR}) + +# common files +set(SOURCES + ../../src/btstack_linked_list.c + ../../src/btstack_util.c + ../../src/hci.c + ../../src/hci_cmd.c + ../../src/ad_parser.c + ../../src/l2cap.c + ../../src/l2cap_signaling.c + ../../src/btstack_memory.c + ../../src/btstack_run_loop.c + ../../src/hci_dump.c + ../../platform/posix/hci_dump_posix_stdout.c + ../../platform/embedded/btstack_run_loop_embedded.c +) + +# Enable ASAN +add_compile_options( -g -fsanitize=address) +add_link_options( -fsanitize=address) + +# create static lib +add_library(btstack STATIC ${SOURCES}) + +# create targets +file(GLOB TEST_FILES_CPP "*_test.cpp") +foreach(TEST_FILE ${TEST_FILES_CPP}) + # Use C++ Compiler + # set_source_files_properties(${TEST_FILE} PROPERTIES LANGUAGE CXX ) + set (SOURCE_FILES ${TEST_FILE}) + get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE) + message("- " ${TEST_NAME}) + add_executable(${TEST_NAME} ${SOURCE_FILES} ) + target_link_libraries(${TEST_NAME} btstack) +endforeach(TEST_FILE) diff --git a/test/l2cap-channel/Makefile b/test/l2cap-ecbm/Makefile similarity index 83% rename from test/l2cap-channel/Makefile rename to test/l2cap-ecbm/Makefile index fa7de0927..696f7bc52 100644 --- a/test/l2cap-channel/Makefile +++ b/test/l2cap-ecbm/Makefile @@ -43,7 +43,6 @@ COMMON_OBJ_ASAN = $(addprefix build-asan/, $(COMMON:.c=.o)) all: \ - build-coverage/l2cap_cbm_test build-asan/l2cap_cbm_test \ build-coverage/l2cap_ecbm_test build-asan/l2cap_ecbm_test \ build-%: @@ -61,12 +60,6 @@ build-asan/%.o: %.c | build-asan build-asan/%.o: %.cpp | build-asan ${CXX} -c $(CFLAGS_ASAN) $< -o $@ -build-coverage/l2cap_cbm_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_cbm_test.o | build-coverage - ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ - -build-asan/l2cap_cbm_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_cbm_test.o | build-asan - ${CXX} $^ ${LDFLAGS_ASAN} -o $@ - build-coverage/l2cap_ecbm_test: ${COMMON_OBJ_COVERAGE} build-coverage/l2cap_ecbm_test.o | build-coverage ${CXX} $^ ${LDFLAGS_COVERAGE} -o $@ @@ -74,12 +67,10 @@ build-asan/l2cap_ecbm_test: ${COMMON_OBJ_ASAN} build-asan/l2cap_ecbm_test.o | bu ${CXX} $^ ${LDFLAGS_ASAN} -o $@ test: all - build-asan/l2cap_cbm_test build-asan/l2cap_ecbm_test coverage: all rm -f build-coverage/*.gcda - build-coverage/l2cap_cbm_test build-coverage/l2cap_ecbm_test clean: diff --git a/test/l2cap-channel/btstack_config.h b/test/l2cap-ecbm/btstack_config.h similarity index 100% rename from test/l2cap-channel/btstack_config.h rename to test/l2cap-ecbm/btstack_config.h diff --git a/test/l2cap-channel/l2cap_ecbm_test.cpp b/test/l2cap-ecbm/l2cap_ecbm_test.cpp similarity index 100% rename from test/l2cap-channel/l2cap_ecbm_test.cpp rename to test/l2cap-ecbm/l2cap_ecbm_test.cpp