{ return LWMSG_STATUS_MALFORMED; } else { return LWMSG_STATUS_SUCCESS; } } #define LEN_MAX ((size_t) -1) static LWMsgTypeSpec basic_spec[] = { LWMSG_STRUCT_BEGIN(basic_struct), LWMSG_MEMBER_INT16(basic_struct, foo), LWMSG_ATTR_VERIFY(basic_verify_foo, NULL), LWMSG_MEMBER_UINT64(basic_struct, len), LWMSG_ATTR_RANGE(1, LEN_MAX / 2), LWMSG_MEMBER_POINTER(basic_struct, long_ptr, LWMSG_INT64(long)), LWMSG_ATTR_NOT_NULL, LWMSG_ATTR_LENGTH_MEMBER(basic_struct, len), LWMSG_STRUCT_END, LWMSG_TYPE_END }; MU_TEST(marshal, basic) { static const unsigned char expected[] = { /* -42 */ 0xFF, 0xD6, /* 2 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
{ CounterHandle* handle; int delta; } CounterAdd; LWMsgTypeSpec counterhandle_spec[] = { LWMSG_HANDLE(CounterHandle), LWMSG_ATTR_NOT_NULL, LWMSG_TYPE_END }; LWMsgTypeSpec counterrequest_spec[] = { LWMSG_STRUCT_BEGIN(CounterRequest), LWMSG_MEMBER_INT16(CounterRequest, counter), LWMSG_STRUCT_END, LWMSG_TYPE_END }; LWMsgTypeSpec counteradd_spec[] = { LWMSG_STRUCT_BEGIN(CounterAdd), LWMSG_MEMBER_HANDLE(CounterAdd, handle, CounterHandle), LWMSG_MEMBER_INT16(CounterAdd, delta), LWMSG_STRUCT_END, LWMSG_TYPE_END }; LWMsgTypeSpec counterreply_spec[] = {