blob: 205393cc47ccf5e7fcb718c67c60bbdb6eb3bfd5 [file] [log] [blame]
Jeremy Kerr18925112019-03-13 15:43:08 +08001
2#include <string.h>
3#include <assert.h>
4
5#include <libmctp.h>
6#include <libmctp-alloc.h>
7
8#include "test-utils.h"
9
10struct mctp_binding_test {
11 struct mctp_binding binding;
12};
13
14static int mctp_binding_test_tx(struct mctp_binding *b __attribute__((unused)),
15 struct mctp_pktbuf *pkt __attribute__((unused)))
16{
17 /* we are not expecting TX packets */
18 assert(0);
19}
20
21struct mctp_binding_test *mctp_binding_test_init(void)
22{
23 struct mctp_binding_test *test;
24
25 test = __mctp_alloc(sizeof(*test));
26 test->binding.name = "test";
27 test->binding.version = 1;
28 test->binding.tx = mctp_binding_test_tx;
29 return test;
30}
31
32void mctp_binding_test_rx_raw(struct mctp_binding_test *test,
33 void *buf, size_t len)
34{
35 struct mctp_pktbuf *pkt;
36
37 pkt = mctp_pktbuf_alloc(len);
38 assert(pkt);
39 memcpy(mctp_pktbuf_hdr(pkt), buf, len);
40 mctp_bus_rx(&test->binding, pkt);
41 mctp_pktbuf_free(pkt);
42}
43
44void mctp_binding_test_register_bus(struct mctp_binding_test *binding,
45 struct mctp *mctp, mctp_eid_t eid)
46{
47 mctp_register_bus(mctp, &binding->binding, eid);
48}
49
50void mctp_test_stack_init(struct mctp **mctp,
51 struct mctp_binding_test **binding,
52 mctp_eid_t eid)
53{
54 *mctp = mctp_init();
55 assert(*mctp);
56
57 *binding = mctp_binding_test_init();
58 assert(*binding);
59
60 mctp_binding_test_register_bus(*binding, *mctp, eid);
61}