aboutsummaryrefslogtreecommitdiffstats
path: root/tests/test_core.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_core.c')
-rw-r--r--tests/test_core.c36
1 files changed, 26 insertions, 10 deletions
diff --git a/tests/test_core.c b/tests/test_core.c
index 2730cd73..4b247340 100644
--- a/tests/test_core.c
+++ b/tests/test_core.c
@@ -62,18 +62,19 @@ END_TEST
START_TEST (test_request_pid_standard)
{
+ // TODO need a constant for the 7df broadcast functional request
+ uint16_t arb_id = 0x7df;
DiagnosticRequestHandle handle = diagnostic_request_pid(&SHIMS,
- DIAGNOSTIC_STANDARD_PID, 0x2, response_received_handler);
+ DIAGNOSTIC_STANDARD_PID, arb_id, 0x2, response_received_handler);
fail_if(last_response_was_received);
const uint8_t can_data[] = {0x3, 0x1 + 0x40, 0x2, 0x45};
- // TODO need a constant for the 7df broadcast functional request
- diagnostic_receive_can_frame(&SHIMS, &handle, 0x7df + 0x8,
+ diagnostic_receive_can_frame(&SHIMS, &handle, arb_id + 0x8,
can_data, sizeof(can_data));
fail_unless(last_response_was_received);
ck_assert(last_response_received.success);
ck_assert_int_eq(last_response_received.arbitration_id,
- 0x7df + 0x8);
+ arb_id + 0x8);
ck_assert_int_eq(last_response_received.mode, 0x1);
ck_assert_int_eq(last_response_received.pid, 0x2);
ck_assert_int_eq(last_response_received.payload_length, 1);
@@ -83,19 +84,18 @@ END_TEST
START_TEST (test_request_pid_enhanced)
{
+ uint16_t arb_id = 0x7df;
DiagnosticRequestHandle handle = diagnostic_request_pid(&SHIMS,
- DIAGNOSTIC_ENHANCED_PID, 0x2, response_received_handler);
+ DIAGNOSTIC_ENHANCED_PID, arb_id, 0x2, response_received_handler);
fail_if(last_response_was_received);
- const uint8_t can_data[] = {0x4, 0x1 + 0x40, 0x0, 0x2, 0x45};
- // TODO need a constant for the 7df broadcast functional request
- diagnostic_receive_can_frame(&SHIMS, &handle, 0x7df + 0x8, can_data,
+ const uint8_t can_data[] = {0x4, 0x22 + 0x40, 0x0, 0x2, 0x45};
+ diagnostic_receive_can_frame(&SHIMS, &handle, arb_id + 0x8, can_data,
sizeof(can_data));
fail_unless(last_response_was_received);
ck_assert(last_response_received.success);
ck_assert_int_eq(last_response_received.arbitration_id,
- 0x7df + 0x8);
- // TODO should we set it back to the original mode, or leave as mode + 0x40?
+ arb_id + 0x8);
ck_assert_int_eq(last_response_received.mode, 0x22);
ck_assert_int_eq(last_response_received.pid, 0x2);
ck_assert_int_eq(last_response_received.payload_length, 1);
@@ -103,6 +103,21 @@ START_TEST (test_request_pid_enhanced)
}
END_TEST
+START_TEST (test_wrong_mode_response)
+{
+ uint16_t arb_id = 0x7df;
+ DiagnosticRequestHandle handle = diagnostic_request_pid(&SHIMS,
+ DIAGNOSTIC_ENHANCED_PID, arb_id, 0x2, response_received_handler);
+
+ fail_if(last_response_was_received);
+ const uint8_t can_data[] = {0x4, 0x1 + 0x40, 0x0, 0x2, 0x45};
+ diagnostic_receive_can_frame(&SHIMS, &handle, arb_id + 0x8, can_data,
+ sizeof(can_data));
+ fail_unless(last_response_was_received);
+ fail_if(last_response_received.success);
+}
+END_TEST
+
Suite* testSuite(void) {
Suite* s = suite_create("obd2");
TCase *tc_core = tcase_create("core");
@@ -111,6 +126,7 @@ Suite* testSuite(void) {
tcase_add_test(tc_core, test_receive_wrong_arb_id);
tcase_add_test(tc_core, test_request_pid_standard);
tcase_add_test(tc_core, test_request_pid_enhanced);
+ tcase_add_test(tc_core, test_wrong_mode_response);
// TODO these are future work:
// TODO test request MIL