Add mesh testing support
Subsystems (3)
cover Add mesh testing support
This patch set reserves MGMT events and opcodes for Mesh, and adds a new unit tester for those features: mesh-tester
Brian Gix (2):
lib: Add mgmt opcodes and events for Mesh
tools: Add mesh-tester to test Kernel mesh support
Makefile.tools | 12 +- lib/mgmt.h | 47 ++ tools/mesh-tester.c | 1434 +++++++++++++++++++++++++++++++++++++++++++ tools/test-runner.c | 2 + 4 files changed, 1494 insertions(+), 1 deletion(-) create mode 100644 tools/mesh-tester.c
Signature · 1 line
2.37.2
PATCH 1/2 lib: Add mgmt opcodes and events for Mesh
--- lib/mgmt.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+)
lib/mgmt.h +47 -0
@@ -760,6 +760,38 @@ struct mgmt_cp_add_adv_patterns_monitor_rssi {struct mgmt_adv_pattern patterns[0 ]; } __packed; +#define MGMT_OP_SET_MESH_RECEIVER 0x0057 +struct mgmt_cp_set_mesh { +uint8_t enable; +uint16_t window; +uint16_t period; +uint8_t num_ad_types; +uint8_t ad_types[]; +} __packed; + +#define MGMT_OP_MESH_READ_FEATURES 0x0058 +struct mgmt_rp_mesh_read_features { +uint16_t index; +uint8_t max_handles; +uint8_t used_handles; +uint8_t handles[]; +} __packed; + +#define MGMT_OP_MESH_SEND 0x0059 +struct mgmt_cp_mesh_send { +struct mgmt_addr_info addr; +uint64_t instant; +uint16_t delay; +uint8_t cnt; +uint8_t adv_data_len; +uint8_t adv_data[]; +} __packed; + +#define MGMT_OP_MESH_SEND_CANCEL 0x005A +struct mgmt_cp_mesh_send_cancel { +uint8_t handle; +} __packed; +#define MGMT_EV_CMD_COMPLETE 0x0001struct mgmt_ev_cmd_complete {uint16_t opcode;
@@ -1035,6 +1067,21 @@ struct mgmt_ev_adv_monitor_device_lost {struct mgmt_addr_info addr; } __packed; +#define MGMT_EV_MESH_DEVICE_FOUND 0x0031 +struct mgmt_ev_mesh_device_found { +struct mgmt_addr_info addr; +int8_t rssi; +uint64_t instant; +uint32_t flags; +uint16_t eir_len; +uint8_t eir[]; +} __packed; + +#define MGMT_EV_MESH_PACKET_CMPLT 0x0032 +struct mgmt_ev_mesh_pkt_cmplt { +uint8_t handle; +} __packed; +static const char *mgmt_op[] = {"<0x0000>" ,"Read Version" ,
Signature · 1 line
2.37.2
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=672954
---Test result---
Test Summary:
CheckPatch FAIL 4.06 seconds GitLint PASS 1.72 seconds Prep - Setup ELL PASS 32.70 seconds Build - Prep PASS 0.80 seconds Build - Configure PASS 10.35 seconds Build - Make PASS 972.06 seconds Make Check PASS 13.30 seconds Make Check w/Valgrind PASS 356.55 seconds Make Distcheck PASS 294.85 seconds Build w/ext ELL - Configure PASS 10.47 seconds Build w/ext ELL - Make PASS 103.79 seconds Incremental Build w/ patches PASS 245.56 seconds Scan Build PASS 803.34 seconds
Details
##############################
Test: CheckPatch - FAIL
Desc: Run checkpatch.pl script with rule in .checkpatch.conf Output:
[BlueZ,2/2] tools: Add mesh-tester to test Kernel mesh support WARNING:LONG_LINE: line length of 101 exceeds 80 columns #699: FILE: tools/mesh-tester.c:590:
+ tester_warn("Invalid cmd response parameter size %d %d", length, expect_len);
WARNING:LEADING_SPACE: please, no spaces at the start of a line #936: FILE: tools/mesh-tester.c:827:
+ struct test_data *data = tester_get_data();$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #937: FILE: tools/mesh-tester.c:828:
+ const struct generic_data *test = data->test_data;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #938: FILE: tools/mesh-tester.c:829:
+ const void *send_param = test->send_param;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #939: FILE: tools/mesh-tester.c:830:
+ uint16_t send_len = test->send_len;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #940: FILE: tools/mesh-tester.c:831:
+ unsigned int id;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #941: FILE: tools/mesh-tester.c:832:
+ uint16_t index;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #943: FILE: tools/mesh-tester.c:834:
+ index = test->send_index_none ? MGMT_INDEX_NONE : data->mgmt_index;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #945: FILE: tools/mesh-tester.c:836:
+ if (test->expect_settings_set || test->expect_settings_unset) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #945: FILE: tools/mesh-tester.c:836:
+ if (test->expect_settings_set || test->expect_settings_unset) {
+ tester_print("Registering new settings notification");
ERROR:CODE_INDENT: code indent should use tabs where possible #946: FILE: tools/mesh-tester.c:837:
+ tester_print("Registering new settings notification");$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #946: FILE: tools/mesh-tester.c:837:
+ tester_print("Registering new settings notification");$
ERROR:CODE_INDENT: code indent should use tabs where possible #948: FILE: tools/mesh-tester.c:839:
+ id = mgmt_register(data->mgmt, MGMT_EV_NEW_SETTINGS, index,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #948: FILE: tools/mesh-tester.c:839:
+ id = mgmt_register(data->mgmt, MGMT_EV_NEW_SETTINGS, index,$
ERROR:CODE_INDENT: code indent should use tabs where possible #949: FILE: tools/mesh-tester.c:840:
+ command_generic_new_settings, NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #949: FILE: tools/mesh-tester.c:840:
+ command_generic_new_settings, NULL, NULL);$
ERROR:CODE_INDENT: code indent should use tabs where possible #950: FILE: tools/mesh-tester.c:841:
+ data->mgmt_settings_id = id;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #950: FILE: tools/mesh-tester.c:841:
+ data->mgmt_settings_id = id;$
ERROR:CODE_INDENT: code indent should use tabs where possible #952: FILE: tools/mesh-tester.c:843:
+ id = mgmt_register(data->mgmt_alt, MGMT_EV_NEW_SETTINGS, index,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #952: FILE: tools/mesh-tester.c:843:
+ id = mgmt_register(data->mgmt_alt, MGMT_EV_NEW_SETTINGS, index,$
ERROR:CODE_INDENT: code indent should use tabs where possible #953: FILE: tools/mesh-tester.c:844:
+ command_generic_new_settings_alt, NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #953: FILE: tools/mesh-tester.c:844:
+ command_generic_new_settings_alt, NULL, NULL);$
ERROR:CODE_INDENT: code indent should use tabs where possible #954: FILE: tools/mesh-tester.c:845:
+ data->mgmt_alt_settings_id = id;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #954: FILE: tools/mesh-tester.c:845:
+ data->mgmt_alt_settings_id = id;$
ERROR:CODE_INDENT: code indent should use tabs where possible #955: FILE: tools/mesh-tester.c:846:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #955: FILE: tools/mesh-tester.c:846:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #956: FILE: tools/mesh-tester.c:847:
+ }$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #958: FILE: tools/mesh-tester.c:849:
+ if (test->expect_alt_ev) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #958: FILE: tools/mesh-tester.c:849:
+ if (test->expect_alt_ev) {
+ tester_print("Registering %s notification",
ERROR:CODE_INDENT: code indent should use tabs where possible #959: FILE: tools/mesh-tester.c:850:
+ tester_print("Registering %s notification",$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #959: FILE: tools/mesh-tester.c:850:
+ tester_print("Registering %s notification",$
ERROR:CODE_INDENT: code indent should use tabs where possible #960: FILE: tools/mesh-tester.c:851:
+ mgmt_evstr(test->expect_alt_ev));$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #960: FILE: tools/mesh-tester.c:851:
+ mgmt_evstr(test->expect_alt_ev));$
ERROR:CODE_INDENT: code indent should use tabs where possible #961: FILE: tools/mesh-tester.c:852:
+ id = mgmt_register(data->mgmt_alt, test->expect_alt_ev, index,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #961: FILE: tools/mesh-tester.c:852:
+ id = mgmt_register(data->mgmt_alt, test->expect_alt_ev, index,$
ERROR:CODE_INDENT: code indent should use tabs where possible #962: FILE: tools/mesh-tester.c:853:
+ command_generic_event_alt, NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #962: FILE: tools/mesh-tester.c:853:
+ command_generic_event_alt, NULL, NULL);$
ERROR:CODE_INDENT: code indent should use tabs where possible #963: FILE: tools/mesh-tester.c:854:
+ data->mgmt_alt_ev_id = id;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #963: FILE: tools/mesh-tester.c:854:
+ data->mgmt_alt_ev_id = id;$
ERROR:CODE_INDENT: code indent should use tabs where possible #964: FILE: tools/mesh-tester.c:855:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #964: FILE: tools/mesh-tester.c:855:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #965: FILE: tools/mesh-tester.c:856:
+ }$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #967: FILE: tools/mesh-tester.c:858:
+ if (test->expect_hci_command) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #967: FILE: tools/mesh-tester.c:858:
+ if (test->expect_hci_command) {
+ tester_print("Registering HCI command callback");
ERROR:CODE_INDENT: code indent should use tabs where possible #968: FILE: tools/mesh-tester.c:859:
+ tester_print("Registering HCI command callback");$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #968: FILE: tools/mesh-tester.c:859:
+ tester_print("Registering HCI command callback");$
ERROR:CODE_INDENT: code indent should use tabs where possible #969: FILE: tools/mesh-tester.c:860:
+ hciemu_add_central_post_command_hook(data->hciemu,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #969: FILE: tools/mesh-tester.c:860:
+ hciemu_add_central_post_command_hook(data->hciemu,$
ERROR:CODE_INDENT: code indent should use tabs where possible #970: FILE: tools/mesh-tester.c:861:
+ command_hci_callback, data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #970: FILE: tools/mesh-tester.c:861:
+ command_hci_callback, data);$
ERROR:CODE_INDENT: code indent should use tabs where possible #971: FILE: tools/mesh-tester.c:862:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #971: FILE: tools/mesh-tester.c:862:
+ test_add_condition(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #972: FILE: tools/mesh-tester.c:863:
+ } else if (test->expect_hci_list) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #972: FILE: tools/mesh-tester.c:863:
+ } else if (test->expect_hci_list) {
[...]
+ tester_print("Registering HCI command list callback");
ERROR:CODE_INDENT: code indent should use tabs where possible #973: FILE: tools/mesh-tester.c:864:
+ /* Use this when it needs to check more than 1 hci command.$
ERROR:CODE_INDENT: code indent should use tabs where possible #974: FILE: tools/mesh-tester.c:865:
+ * However, it cannot be used with expect_hci_command.$
ERROR:CODE_INDENT: code indent should use tabs where possible #975: FILE: tools/mesh-tester.c:866:
+ */$
ERROR:CODE_INDENT: code indent should use tabs where possible #976: FILE: tools/mesh-tester.c:867:
+ tester_print("Registering HCI command list callback");$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #976: FILE: tools/mesh-tester.c:867:
+ tester_print("Registering HCI command list callback");$
ERROR:CODE_INDENT: code indent should use tabs where possible #977: FILE: tools/mesh-tester.c:868:
+ hciemu_add_central_post_command_hook(data->hciemu,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #977: FILE: tools/mesh-tester.c:868:
+ hciemu_add_central_post_command_hook(data->hciemu,$
ERROR:CODE_INDENT: code indent should use tabs where possible #978: FILE: tools/mesh-tester.c:869:
+ command_hci_list_callback, data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #978: FILE: tools/mesh-tester.c:869:
+ command_hci_list_callback, data);$
ERROR:CODE_INDENT: code indent should use tabs where possible #979: FILE: tools/mesh-tester.c:870:
+ add_expect_hci_list(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #979: FILE: tools/mesh-tester.c:870:
+ add_expect_hci_list(data);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #980: FILE: tools/mesh-tester.c:871:
+ }$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #982: FILE: tools/mesh-tester.c:873:
+ if (test->send_opcode == 0x0000) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #982: FILE: tools/mesh-tester.c:873:
+ if (test->send_opcode == 0x0000) {
+ tester_print("Executing no-op test");
ERROR:CODE_INDENT: code indent should use tabs where possible #983: FILE: tools/mesh-tester.c:874:
+ tester_print("Executing no-op test");$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #983: FILE: tools/mesh-tester.c:874:
+ tester_print("Executing no-op test");$
ERROR:CODE_INDENT: code indent should use tabs where possible #984: FILE: tools/mesh-tester.c:875:
+ return;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #984: FILE: tools/mesh-tester.c:875:
+ return;$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #985: FILE: tools/mesh-tester.c:876:
+ }$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #987: FILE: tools/mesh-tester.c:878:
+ tester_print("Sending %s (0x%04x)", mgmt_opstr(test->send_opcode),$
ERROR:CODE_INDENT: code indent should use tabs where possible #988: FILE: tools/mesh-tester.c:879:
+ test->send_opcode);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #988: FILE: tools/mesh-tester.c:879:
+ test->send_opcode);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #990: FILE: tools/mesh-tester.c:881:
+ if (test->send_func)$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #990: FILE: tools/mesh-tester.c:881:
+ if (test->send_func)
+ send_param = test->send_func(&send_len);
ERROR:CODE_INDENT: code indent should use tabs where possible #991: FILE: tools/mesh-tester.c:882:
+ send_param = test->send_func(&send_len);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #991: FILE: tools/mesh-tester.c:882:
+ send_param = test->send_func(&send_len);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #993: FILE: tools/mesh-tester.c:884:
+ if (test->force_power_off) {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #993: FILE: tools/mesh-tester.c:884:
+ if (test->force_power_off) {
+ mgmt_send_nowait(data->mgmt, test->send_opcode, index,
ERROR:CODE_INDENT: code indent should use tabs where possible #994: FILE: tools/mesh-tester.c:885:
+ mgmt_send_nowait(data->mgmt, test->send_opcode, index,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #994: FILE: tools/mesh-tester.c:885:
+ mgmt_send_nowait(data->mgmt, test->send_opcode, index,$
ERROR:CODE_INDENT: code indent should use tabs where possible #995: FILE: tools/mesh-tester.c:886:
+ send_len, send_param,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #995: FILE: tools/mesh-tester.c:886:
+ send_len, send_param,$
ERROR:CODE_INDENT: code indent should use tabs where possible #996: FILE: tools/mesh-tester.c:887:
+ command_generic_callback, NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #996: FILE: tools/mesh-tester.c:887:
+ command_generic_callback, NULL, NULL);$
ERROR:CODE_INDENT: code indent should use tabs where possible #997: FILE: tools/mesh-tester.c:888:
+ power_off(data->mgmt_index);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #997: FILE: tools/mesh-tester.c:888:
+ power_off(data->mgmt_index);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #998: FILE: tools/mesh-tester.c:889:
+ } else {$
WARNING:SUSPECT_CODE_INDENT: suspect code indent for conditional statements (7, 15) #998: FILE: tools/mesh-tester.c:889:
+ } else {
+ mgmt_send(data->mgmt, test->send_opcode, index, send_len,
ERROR:CODE_INDENT: code indent should use tabs where possible #999: FILE: tools/mesh-tester.c:890:
+ mgmt_send(data->mgmt, test->send_opcode, index, send_len,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #999: FILE: tools/mesh-tester.c:890:
+ mgmt_send(data->mgmt, test->send_opcode, index, send_len,$
ERROR:CODE_INDENT: code indent should use tabs where possible #1000: FILE: tools/mesh-tester.c:891:
+ send_param, command_generic_callback,$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #1000: FILE: tools/mesh-tester.c:891:
+ send_param, command_generic_callback,$
ERROR:CODE_INDENT: code indent should use tabs where possible #1001: FILE: tools/mesh-tester.c:892:
+ NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #1001: FILE: tools/mesh-tester.c:892:
+ NULL, NULL);$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #1002: FILE: tools/mesh-tester.c:893:
+ }$
WARNING:LEADING_SPACE: please, no spaces at the start of a line #1004: FILE: tools/mesh-tester.c:895:
+ test_add_condition(data);$
WARNING:BLOCK_COMMENT_STYLE: Block comments use a trailing */ on a separate line #1247: FILE: tools/mesh-tester.c:1138:
+ * for a callback. */
WARNING:LINE_SPACING: Missing a blank line after declarations #1281: FILE: tools/mesh-tester.c:1172:
+ unsigned char off[] = { 0x00 };
+ tester_print("Setup sending %s (0x%04x)",
/github/workspace/src/12961389.patch total: 36 errors, 66 warnings, 1472 lines checked
NOTE: For some of the reported defects, checkpatch may be able to
mechanically convert to the typical style using --fix or --fix-inplace.
NOTE: Whitespace errors detected.
You may wish to use scripts/cleanpatch or scripts/cleanfile
/github/workspace/src/12961389.patch has style problems, please review.
NOTE: Ignored message types: COMMIT_MESSAGE COMPLEX_MACRO CONST_STRUCT FILE_PATH_CHANGES MISSING_SIGN_OFF PREFER_PACKED SPDX_LICENSE_TAG SPLIT_STRING SSCANF_TO_KSTRTO
NOTE: If any of the errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.
---
Regards,
Linux Bluetooth
PATCH 2/2 tools: Add mesh-tester to test Kernel mesh support
In reply to Brian GixEver growing set of tests for Mesh kernel support
--- Makefile.tools | 12 +- tools/mesh-tester.c | 1434 +++++++++++++++++++++++++++++++++++++++++++ tools/test-runner.c | 2 + 3 files changed, 1447 insertions(+), 1 deletion(-) create mode 100644 tools/mesh-tester.c
Makefile.tools +11 -1
@@ -86,7 +86,8 @@ noinst_PROGRAMS += emulator/btvirt emulator/b1ee emulator/hfp \ tools/l2cap-tester tools/sco-tester \ tools/smp-tester tools/hci-tester \ tools/rfcomm-tester tools/bnep-tester \ - tools/userchan-tester tools/iso-tester + tools/userchan-tester tools/iso-tester \ + tools/mesh-tester emulator_btvirt_SOURCES = emulator/main.c monitor/bt.h \ emulator/serial.h emulator/serial.c \
@@ -127,6 +128,15 @@ tools_mgmt_tester_SOURCES = tools/mgmt-tester.c monitor/bt.h \ tools_mgmt_tester_LDADD = lib/libbluetooth-internal.la \ src/libshared-glib.la $(GLIB_LIBS) +tools_mesh_tester_SOURCES = tools/mesh-tester.c monitor/bt.h \ + emulator/hciemu.h emulator/hciemu.c \ + emulator/vhci.h emulator/vhci.c \ + emulator/btdev.h emulator/btdev.c \ + emulator/bthost.h emulator/bthost.c \ + emulator/smp.c +tools_mesh_tester_LDADD = lib/libbluetooth-internal.la \ + src/libshared-glib.la $(GLIB_LIBS) + tools_l2cap_tester_SOURCES = tools/l2cap-tester.c monitor/bt.h \ emulator/hciemu.h emulator/hciemu.c \ emulator/vhci.h emulator/vhci.c \
tools/mesh-tester.c new file +1434 -0
1,434 lines not on this page · raw message
tools/test-runner.c +2 -0
@@ -614,6 +614,7 @@ static const char *test_table[] = {"rfcomm-tester" ,"sco-tester" ,"iso-tester" , +"mesh-tester" ,"bnep-tester" ,"check-selftest" , "tools/mgmt-tester",
@@ -622,6 +623,7 @@ static const char *test_table[] = {"tools/rfcomm-tester" ,"tools/sco-tester" ,"tools/iso-tester" , +"tools/mesh-tester" ,"tools/bnep-tester" ,"tools/check-selftest" ,NULL
Signature · 1 line
2.37.2