X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=tests%2Ftest_receive.c;h=2ce3feff3d950ea9c1bffc87b592ed5a207c6295;hb=482c7eafcb35a4031ab6f2241b14ac495735b7cd;hp=4134cfd6a8c7abf0fdc8719e8375e6f358523c7b;hpb=34a7c0ca08683eb83d6b6b3d5a6a8fb2f7d5b918;p=apps%2Flow-level-can-service.git diff --git a/tests/test_receive.c b/tests/test_receive.c index 4134cfd..2ce3fef 100644 --- a/tests/test_receive.c +++ b/tests/test_receive.c @@ -6,7 +6,7 @@ #include extern IsoTpShims SHIMS; -extern IsoTpHandler ISOTP_HANDLER; +extern IsoTpHandle HANDLE; extern uint16_t last_can_frame_sent_arb_id; extern uint8_t last_can_payload_sent; @@ -27,8 +27,9 @@ extern void setup(); START_TEST (test_receive_wrong_id) { - const uint8_t data[8] = {0}; - isotp_receive_can_frame(0x100, data, sizeof(data)); + const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0}; + IsoTpMessage message = isotp_receive_can_frame(&SHIMS, &HANDLE, 0x100, data, 1); + fail_if(message.completed); fail_if(message_was_received); } END_TEST @@ -36,21 +37,34 @@ END_TEST START_TEST (test_receive_bad_pci) { // 4 is a reserved number for the PCI field - only 0-3 are allowed - const uint8_t data[8] = {0x40}; - isotp_receive_can_frame(0x2a, data, sizeof(data)); + const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x40}; + IsoTpMessage message = isotp_receive_can_frame(&SHIMS, &HANDLE, 0x2a, data, 1); + fail_if(message.completed); fail_if(message_was_received); } END_TEST +START_TEST (test_receive_single_frame_empty_payload) +{ + const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x00, 0x12, 0x34}; + IsoTpMessage message = isotp_receive_can_frame(&SHIMS, &HANDLE, 0x2a, data, 3); + fail_unless(message.completed); + fail_unless(message_was_received); + ck_assert_int_eq(last_message_received_arb_id, 0x2a); + ck_assert_int_eq(last_message_received_payload_size, 0); +} +END_TEST + START_TEST (test_receive_single_frame) { - const uint8_t data[8] = {0x0, 0x12, 0x34}; - isotp_receive_can_frame(0x2a, data, sizeof(data)); + const uint8_t data[CAN_MESSAGE_BYTE_SIZE] = {0x02, 0x12, 0x34}; + IsoTpMessage message = isotp_receive_can_frame(&SHIMS, &HANDLE, 0x2a, data, 3); + fail_unless(message.completed); fail_unless(message_was_received); ck_assert_int_eq(last_message_received_arb_id, 0x2a); ck_assert_int_eq(last_message_received_payload_size, 2); ck_assert_int_eq(last_message_received_payload[0], 0x12); - ck_assert_int_eq(last_message_received_payload[0], 0x34); + ck_assert_int_eq(last_message_received_payload[1], 0x34); } END_TEST @@ -61,6 +75,7 @@ Suite* testSuite(void) { tcase_add_test(tc_core, test_receive_wrong_id); tcase_add_test(tc_core, test_receive_bad_pci); tcase_add_test(tc_core, test_receive_single_frame); + tcase_add_test(tc_core, test_receive_single_frame_empty_payload); suite_add_tcase(s, tc_core); return s;