xref: /openbmc/libpldm/tests/transport/send_recv_wrong_command_code.cpp (revision 691668fe7662d779e6fd000e6e8e6aa7f3c8b17c)
1 #include "array.h"
2 #include "libpldm/transport.h"
3 #include "transport/test.h"
4 
5 #include <gtest/gtest.h>
6 
7 TEST(Transport, send_recv_wrong_command_code)
8 {
9     uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
10     uint8_t resp[] = {0x01, 0x00, 0x02, 0x00};
11     const struct pldm_transport_test_descriptor seq[] = {
12         {
13             .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
14             .send_msg =
15                 {
16                     .dst = 1,
17                     .msg = req,
18                     .len = sizeof(req),
19                 },
20         },
21         {
22             .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
23             .latency =
24                 {
25                     .it_interval = {0, 0},
26                     .it_value = {1, 0},
27                 },
28         },
29         {
30             .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
31             .recv_msg =
32                 {
33                     .src = 2,
34                     .msg = resp,
35                     .len = sizeof(resp),
36                 },
37         },
38         {
39             .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
40             .latency =
41                 {
42                     .it_interval = {0, 0},
43                     .it_value = {4, 0},
44                 },
45         },
46     };
47     struct pldm_transport_test* test = NULL;
48     struct pldm_transport* ctx;
49     size_t len;
50     void* msg;
51     int rc;
52 
53     EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
54     ctx = pldm_transport_test_core(test);
55     rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
56     EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
57     pldm_transport_test_destroy(test);
58 }
59