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_unwanted) 8 { 9 uint8_t req[] = {0x81, 0x00, 0x01, 0x01}; 10 uint8_t resp[] = {0x02, 0x00, 0x01, 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