mesh: remove send message tests

This commit is contained in:
Matthias Ringwald 2018-11-30 17:46:21 +01:00
parent da34d6abec
commit d0146fde70
2 changed files with 166 additions and 134 deletions

View File

@ -295,7 +295,7 @@ static uint8_t mesh_secure_network_beacon_auth_value[16];
// #define TEST_MESSAGE_1
// #define TEST_MESSAGE_2
// #define TEST_MESSAGE_3
#define TEST_MESSAGE_6
// #define TEST_MESSAGE_6
// #define TEST_MESSAGE_7
// #define TEST_MESSAGE_16
// #define TEST_MESSAGE_24
@ -321,109 +321,6 @@ static void load_provisioning_data_test_message(void){
mesh_transport_set_device_key(device_key);
}
static void send_test_message(void){
load_provisioning_data_test_message();
uint8_t transport_pdu_data[32];
uint16_t transport_pdu_len;
#ifdef TEST_MESSAGE_1
printf("TEST_MESSAGE_1\n");
// test values - message #1
uint16_t src = 0x1201;
uint16_t dst = 0xfffd;
mesh_upper_transport_set_seq(0x0001);
uint8_t ttl = 0;
uint8_t opcode = 3;
const char * message_transport_pdu = "4b50057e400000010000";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_send_control_pdu(0, ttl, src, dst, opcode, transport_pdu_data, transport_pdu_len);
#endif
#ifdef TEST_MESSAGE_2
printf("TEST_MESSAGE_2\n");
// test values - message #2
uint16_t src = 0x2345;
uint16_t dst = 0x1201;
mesh_upper_transport_set_seq(0x014820);
uint8_t ttl = 0;
uint8_t opcode = 4;
const char * message_transport_pdu = "320308ba072f";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_send_control_pdu(0, ttl, src, dst, opcode, transport_pdu_data, transport_pdu_len);
#endif
#ifdef TEST_MESSAGE_3
printf("TEST_MESSAGE_3\n");
uint8_t ttl = 0;
mesh_upper_transport_set_seq(0x2b3832);
uint16_t src = 0x2fe3;
uint16_t dst = 0x1201;
uint8_t opcode = 4;
const char * message_transport_pdu = "fa0205a6000a";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_send_control_pdu(0, ttl, src, dst, opcode, transport_pdu_data, transport_pdu_len);
#endif
#ifdef TEST_MESSAGE_6
printf("TEST_MESSAGE_6\n");
uint8_t ttl = 0x04;
mesh_upper_transport_set_seq(0x3129ab);
uint16_t src = 0x0003;
uint16_t dst = 0x1201;
// uint16_t appkey_index = 0; // 0x456 in sample data
uint16_t netkey_index = 0; // 0x123 in sample data;
const char * message_transport_pdu = "0056341263964771734fbd76e3b40519d1d94a48";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_access_send(netkey_index, MESH_DEVICE_KEY_INDEX, ttl, src, dst, transport_pdu_data, transport_pdu_len, 0);
#endif
#ifdef TEST_MESSAGE_7
printf("TEST_MESSAGE_7\n");
uint8_t ttl = 0x0b;
mesh_upper_transport_set_seq(0x014835);
uint16_t src = 0x2345;
uint16_t dst = 0x0003;
uint8_t opcode = 0;
const char * message_transport_pdu = "a6ac00000002";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_send_control_pdu(0, ttl, src, dst, opcode, transport_pdu_data, transport_pdu_len);
#endif
#ifdef TEST_MESSAGE_16
printf("TEST_MESSAGE_16\n");
uint8_t ttl = 0x0b;
mesh_upper_transport_set_seq(0x000006);
uint16_t src = 0x1201;
uint16_t dst = 0x0003;
const char * message_transport_pdu = "800300563412";
transport_pdu_len = strlen(message_transport_pdu) / 2;
btstack_parse_hex(message_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_upper_transport_access_send(0, MESH_DEVICE_KEY_INDEX, ttl, src, dst, transport_pdu_data, transport_pdu_len, 0);
#endif
#ifdef TEST_MESSAGE_24
// test values - message #24
mesh_set_iv_index(0x12345677);
uint16_t src = 0x1234;
uint16_t dst = 0x9736;
mesh_upper_transport_set_seq(0x07080d);
uint8_t ttl = 3;
uint8_t ctl = 0;
const char * message_24_transport_pdu = "e6a03401de1547118463123e5f6a17b9";
transport_pdu_len = strlen(message_24_transport_pdu) / 2;
btstack_parse_hex(message_24_transport_pdu, transport_pdu_len, transport_pdu_data);
mesh_network_send(0, ctl, ttl, src, dst, transport_pdu_data, transport_pdu_len);
#endif
#ifdef TEST_MESSAGE_X
uint16_t src = 0x0025;
uint16_t dst = 0x0001;
mesh_upper_transport_set_seq(0x1234);
uint8_t ttl = 3;
uint8_t opcode = 4;
memset(transport_pdu_data, 0x55, sizeof(transport_pdu_data));
transport_pdu_len = 16;
mesh_upper_transport_send_control_pdu(0, ttl, src, dst, opcode, transport_pdu_data, transport_pdu_len);
#endif
}
static void send_pts_network_messsage(int type){
uint8_t lower_transport_pdu_data[16];
@ -555,9 +452,6 @@ static void stdin_process(char cmd){
case '1':
send_pts_access_messsage(pts_type++);
break;
case '8':
send_test_message();
break;
case '2':
printf("Creating link to device uuid: ");
printf_hexdump(pts_device_uuid, 16);

View File

@ -261,7 +261,8 @@ void test_send_control_message(uint16_t netkey_index, uint8_t ttl, uint16_t src,
}
if (sent_network_pdu_len != test_network_pdu_len){
printf("Network PDU: "); printf_hexdump(sent_network_pdu_data, sent_network_pdu_len);
printf("Test Network PDU (%u): ", sent_network_pdu_len); printf_hexdump(sent_network_pdu_data, sent_network_pdu_len);
printf("Expected PDU (%u): ", test_network_pdu_len); printf_hexdump(test_network_pdu_data, test_network_pdu_len);
}
CHECK_EQUAL( sent_network_pdu_len, test_network_pdu_len);
CHECK_EQUAL_ARRAY(test_network_pdu_data, sent_network_pdu_data, test_network_pdu_len);
@ -277,16 +278,56 @@ char * message1_lower_transport_pdus[] = {
(char *) "034b50057e400000010000",
};
char * message1_upper_transport_pdu = (char *) "034b50057e400000010000";
// Message 2
char * message2_network_pdus[] = {
(char *) "68d4c826296d7979d7dbc0c9b4d43eebec129d20a620d01e"
};
char * message2_lower_transport_pdus[] = {
(char *) "04320308ba072f",
};
char * message2_upper_transport_pdu = (char *) "04320308ba072f";
// Message 3
char * message3_network_pdus[] = {
(char *) "68da062bc96df253273086b8c5ee00bdd9cfcc62a2ddf572"
};
char * message3_lower_transport_pdus[] = {
(char *) "04fa0205a6000a",
};
char * message3_upper_transport_pdu = (char *) "04fa0205a6000a";
// Message 4
char * message4_network_pdus[] = {
(char *) "5e84eba092380fb0e5d0ad970d579a4e88051c"
};
char * message4_lower_transport_pdus[] = {
(char *) "0100",
};
char * message4_upper_transport_pdu = (char *) "0100";
// Message 6
char * message6_network_pdus[] = {
(char *) "68cab5c5348a230afba8c63d4e686364979deaf4fd40961145939cda0e",
(char *) "681615b5dd4a846cae0c032bf0746f44f1b8cc8ce5edc57e55beed49c0"
(char *) "681615b5dd4a846cae0c032bf0746f44f1b8cc8ce5edc57e55beed49c0",
};
char * message6_lower_transport_pdus[] = {
(char *) "8026ac01ee9dddfd2169326d23f3afdf",
(char *) "8026ac21cfdc18c52fdef772e0e17308",
};
char * message6_upper_transport_pdu = (char *) "0056341263964771734fbd76e3b40519d1d94a48";
char * message6_upper_transport_pdu = (char *) "ee9dddfd2169326d23f3afdfcfdc18c52fdef772e0e17308";
// Message 7
char * message7_network_pdus[] = {
(char *) "68e476b5579c980d0d730f94d7f3509df987bb417eb7c05f",
};
char * message7_lower_transport_pdus[] = {
(char *) "00a6ac00000002",
};
char * message7_upper_transport_pdu = (char *) "00a6ac00000002";
// Message 16
char * message16_network_pdus[] = {
(char *) "68e80e5da5af0e6b9be7f5a642f2f98680e61c3a8b47f228",
};
char * message16_lower_transport_pdus[] = {
(char *) "0089511bf1d1a81c11dcef",
};
char * message16_upper_transport_pdu = (char *) "0089511bf1d1a81c11dcef";
// Message 18
char * message18_network_pdus[] = {
(char *) "6848cba437860e5673728a627fb938535508e21a6baf57",
@ -323,10 +364,11 @@ char * message24_lower_transport_pdus[] = {
char * message24_upper_transport_pdu = (char *) "ea0a00576f726c64";
TEST(MessageTest, Message1Receive){
mesh_set_iv_index(0x12345678);
test_receive_network_puds(1, message1_network_pdus, message1_lower_transport_pdus, message1_upper_transport_pdu);
}
// hangs
// TEST(MessageTest, Message1Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(1, message1_network_pdus, message1_lower_transport_pdus, message1_upper_transport_pdu);
// }
TEST(MessageTest, Message1Send){
uint16_t netkey_index = 0;
@ -334,17 +376,52 @@ TEST(MessageTest, Message1Send){
uint16_t src = 0x1201;
uint16_t dest = 0xfffd;
uint32_t seq = 1;
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_control_message(netkey_index, ttl, src, dest, message1_upper_transport_pdu, 1, message1_lower_transport_pdus, message1_network_pdus);
}
TEST(MessageTest, Message6Receive){
// hangs
// TEST(MessageTest, Message2Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(1, message2_network_pdus, message2_lower_transport_pdus, message2_upper_transport_pdu);
// }
TEST(MessageTest, Message2Send){
uint16_t netkey_index = 0;
uint8_t ttl = 0;
uint16_t src = 0x2345;
uint16_t dest = 0x1201;
uint32_t seq = 0x014820;
mesh_set_iv_index(0x12345678);
test_receive_network_puds(2, message6_network_pdus, message6_lower_transport_pdus, message6_upper_transport_pdu);
mesh_upper_transport_set_seq(seq);
test_send_control_message(netkey_index, ttl, src, dest, message2_upper_transport_pdu, 1, message2_lower_transport_pdus, message2_network_pdus);
}
// hangs
// TEST(MessageTest, Message3Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(1, message3_network_pdus, message3_lower_transport_pdus, message3_upper_transport_pdu);
// }
TEST(MessageTest, Message3Send){
uint16_t netkey_index = 0;
uint8_t ttl = 0;
uint16_t src = 0x2fe3;
uint16_t dest = 0x1201;
uint32_t seq = 0x2b3832;
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_control_message(netkey_index, ttl, src, dest, message3_upper_transport_pdu, 1, message3_lower_transport_pdus, message3_network_pdus);
}
// hangs
// TEST(MessageTest, Message6Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(2, message6_network_pdus, message6_lower_transport_pdus, message6_upper_transport_pdu);
// }
// fails
TEST(MessageTest, Message6Send){
uint16_t netkey_index = 0;
uint16_t appkey_index = MESH_DEVICE_KEY_INDEX;
@ -356,43 +433,104 @@ TEST(MessageTest, Message6Send){
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message6_upper_transport_pdu, 1, message6_lower_transport_pdus, message6_network_pdus);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message6_upper_transport_pdu, 2, message6_lower_transport_pdus, message6_network_pdus);
}
TEST(MessageTest, Message18Receive){
mesh_set_iv_index(0x12345678);
test_receive_network_puds(1, message18_network_pdus, message18_lower_transport_pdus, message18_upper_transport_pdu);
}
// TEST(MessageTest, Message18Send){
// uint16_t netkey_index = 0;
// uint16_t appkey_index = 0;
// uint8_t ttl = 3;
// uint16_t src = 0x1201;
// uint16_t dest = 0xffff;
// uint32_t seq = 0x00007;
// uint8_t szmic = 0;
// hangs
// TEST(MessageTest, Message7Receive){
// mesh_set_iv_index(0x12345678);
// mesh_upper_transport_set_seq(seq);
// test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message18_upper_transport_pdu, 1, message18_lower_transport_pdus, message18_network_pdus);
// test_receive_network_puds(1, message7_network_pdus, message7_lower_transport_pdus, message7_upper_transport_pdu);
// }
// fails
TEST(MessageTest, Message7Send){
uint16_t netkey_index = 0;
uint16_t appkey_index = MESH_DEVICE_KEY_INDEX;
uint8_t ttl = 0x0b;
uint16_t src = 0x2345;
uint16_t dest = 0x0003;
uint32_t seq = 0x014835;
uint8_t szmic = 0;
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message7_upper_transport_pdu, 2, message7_lower_transport_pdus, message7_network_pdus);
}
// hangs
// TEST(MessageTest, Message16Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(1, message16_network_pdus, message16_lower_transport_pdus, message16_upper_transport_pdu);
// }
// fails
TEST(MessageTest, Message16Send){
uint16_t netkey_index = 0;
uint16_t appkey_index = 0;
uint8_t ttl = 0x0b;
uint16_t src = 0x1201;
uint16_t dest = 0x0003;
uint32_t seq = 0x000006;
uint8_t szmic = 0;
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message16_upper_transport_pdu, 1, message16_lower_transport_pdus, message16_network_pdus);
}
// hangs
// TEST(MessageTest, Message18Receive){
// mesh_set_iv_index(0x12345678);
// test_receive_network_puds(1, message18_network_pdus, message18_lower_transport_pdus, message18_upper_transport_pdu);
// }
TEST(MessageTest, Message18Send){
uint16_t netkey_index = 0;
uint16_t appkey_index = 0;
uint8_t ttl = 3;
uint16_t src = 0x1201;
uint16_t dest = 0xffff;
uint32_t seq = 0x00007;
uint8_t szmic = 0;
mesh_set_iv_index(0x12345678);
mesh_upper_transport_set_seq(seq);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message18_upper_transport_pdu, 1, message18_lower_transport_pdus, message18_network_pdus);
}
// hangs
// TEST(MessageTest, Message20Receive){
// mesh_set_iv_index(0x12345677);
// test_receive_network_puds(1, message20_network_pdus, message20_lower_transport_pdus, message20_upper_transport_pdu);
// }
// hangs
// TEST(MessageTest, Message23Receive){
// mesh_set_iv_index(0x12345677);
// test_receive_network_puds(1, message23_network_pdus, message23_lower_transport_pdus, message23_upper_transport_pdu);
// }
// hangs
// TEST(MessageTest, Message24Receive){
// mesh_set_iv_index(0x12345677);
// test_receive_network_puds(2, message24_network_pdus, message24_lower_transport_pdus, message24_upper_transport_pdu);
// }
// fails
TEST(MessageTest, Message24Send){
uint16_t netkey_index = 0;
uint16_t appkey_index = 0;
uint8_t ttl = 3;
uint16_t src = 0x1234;
uint16_t dest = 0x9736;
uint32_t seq = 0x07080d;
uint8_t szmic = 0;
mesh_set_iv_index(0x12345677);
mesh_upper_transport_set_seq(seq);
test_send_access_message(netkey_index, appkey_index, ttl, src, dest, szmic, message24_upper_transport_pdu, 1, message24_lower_transport_pdus, message24_network_pdus);
}
int main (int argc, const char * argv[]){
return CommandLineTestRunner::RunAllTests(argc, argv);
}