test/embedded: add hci_dump_test

This commit is contained in:
Matthias Ringwald 2021-12-05 20:46:44 +01:00
parent 1fba6313b3
commit 798de539e3
2 changed files with 117 additions and 0 deletions

View File

@ -62,6 +62,7 @@ all: build-coverage/embedded_test build-asan/embedded_test \
build-coverage/btstack_util_test build-asan/btstack_util_test \
build-coverage/l2cap_le_signaling_test build-asan/l2cap_le_signaling_test \
build-coverage/hci_cmd_test build-asan/hci_cmd_test \
build-coverage/hci_dump_test build-asan/hci_dump_test \
build-coverage/freertos_test build-asan/freertos_test \
build-%:
@ -115,6 +116,11 @@ build-coverage/hci_cmd_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_cmd_test.
build-asan/hci_cmd_test: ${COMMON_OBJ_ASAN} build-asan/hci_cmd_test.o | build-asan
${CC} $^ ${LDFLAGS_ASAN} -o $@
build-coverage/hci_dump_test: ${COMMON_OBJ_COVERAGE} build-coverage/hci_dump_test.o build-coverage/hci_dump.o | build-coverage
${CC} $^ ${LDFLAGS_COVERAGE} -o $@
build-asan/hci_dump_test: ${COMMON_OBJ_ASAN} build-asan/hci_dump_test.o build-asan/hci_dump.o | build-asan
${CC} $^ ${LDFLAGS_ASAN} -o $@
test: all
build-asan/embedded_test
@ -123,6 +129,7 @@ test: all
build-asan/btstack_util_test
build-asan/l2cap_le_signaling_test
build-asan/hci_cmd_test
build-asan/hci_dump_test
coverage: all
rm -f build-coverage/*.gcda
@ -132,6 +139,7 @@ coverage: all
build-coverage/btstack_util_test
build-coverage/l2cap_le_signaling_test
build-coverage/hci_cmd_test
build-coverage/hci_dump_test
clean:
rm -rf build-coverage build-asan *.dSYM

View File

@ -0,0 +1,109 @@
#include "CppUTest/TestHarness.h"
#include "CppUTest/CommandLineTestRunner.h"
#include "hci_dump.h"
#include "btstack_util.h"
static void hci_dump_embedded_stdout_log_packet(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len){
}
static void hci_dump_embedded_stdout_log_message(const char * format, va_list argptr){
}
static void hci_dump_embedded_stdout_reset(void){}
static const hci_dump_t hci_dump_instance_without_reset = {
// void (*reset)(void);
NULL,
// void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len);
&hci_dump_embedded_stdout_log_packet,
// void (*log_message)(int log_level, const char * format, va_list argptr);
&hci_dump_embedded_stdout_log_message,
};
static const hci_dump_t hci_dump_instance_with_reset = {
// void (*reset)(void);
&hci_dump_embedded_stdout_reset,
// void (*log_packet)(uint8_t packet_type, uint8_t in, uint8_t *packet, uint16_t len);
&hci_dump_embedded_stdout_log_packet,
// void (*log_message)(int log_level, const char * format, va_list argptr);
&hci_dump_embedded_stdout_log_message,
};
TEST_GROUP(hci_dump){
void setup(void){
}
void teardown(void){
}
};
TEST(hci_dump, init){
hci_dump_init(&hci_dump_instance_without_reset);
hci_dump_set_max_packets(0);
hci_dump_enable_packet_log(false);
}
TEST(hci_dump, log_level){
hci_dump_init(&hci_dump_instance_without_reset);
hci_dump_log(HCI_DUMP_LOG_LEVEL_DEBUG - 1, "");
hci_dump_log(HCI_DUMP_LOG_LEVEL_ERROR + 1, "");
hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_DEBUG - 1, 0);
hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR + 1, 0);
hci_dump_enable_log_level(HCI_DUMP_LOG_LEVEL_ERROR, 1);
}
TEST(hci_dump, log_not_enabled){
hci_dump_init(&hci_dump_instance_without_reset);
hci_dump_enable_packet_log(false);
hci_dump_packet(0, 0, NULL, 0);
}
TEST(hci_dump, log_reset){
hci_dump_init(&hci_dump_instance_without_reset);
hci_dump_set_max_packets(1);
hci_dump_packet(0, 0, NULL, 0);
hci_dump_packet(0, 0, NULL, 0);
}
TEST(hci_dump, log_max_packets){
hci_dump_init(&hci_dump_instance_with_reset);
hci_dump_set_max_packets(1);
hci_dump_packet(0, 0, NULL, 0);
hci_dump_packet(0, 0, NULL, 0);
}
TEST(hci_dump, header_setup_packetlogger){
uint8_t buffer[100];
hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
hci_dump_setup_header_packetlogger(buffer, 0, 0, 0x77, 0, 0);
}
TEST(hci_dump, header_setup_bluez){
uint8_t buffer[100];
hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, HCI_EVENT_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
hci_dump_setup_header_bluez(buffer, 0, 0, 0x77, 0, 0);
}
TEST(hci_dump, header_setup_btsnoop){
uint8_t buffer[100];
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_ACL_DATA_PACKET, 1, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_SCO_DATA_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_EVENT_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, HCI_COMMAND_DATA_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, LOG_MESSAGE_PACKET, 0, 0);
hci_dump_setup_header_btsnoop(buffer, 0, 0, 0, 0x77, 0, 0);
}
int main (int argc, const char * argv[]){
return CommandLineTestRunner::RunAllTests(argc, argv);
}