#include #include #include #include #include #include "oneofmsg.pb.h" #include "unittests.h" int main(int argc, char **argv) { int status = 0; uint8_t buffer[512]; pb_size_t msglen = 0; { pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); BodyMessage msg = BodyMessage_init_zero; msg.which_body_type = BodyMessage_device_data_crypted_tag; msg.body_type.device_data_crypted.size = 252; memset(msg.body_type.device_data_crypted.bytes, 0xAA, 252); TEST(pb_encode(&stream, BodyMessage_fields, &msg)); msglen = stream.bytes_written; TEST(msglen > 252); } { pb_istream_t stream = pb_istream_from_buffer(buffer, msglen); BodyMessage msg = BodyMessage_init_zero; TEST(pb_decode(&stream, BodyMessage_fields, &msg)); TEST(msg.which_body_type == BodyMessage_device_data_crypted_tag); TEST(msg.body_type.device_data_crypted.size == 252); TEST(msg.body_type.device_data_crypted.bytes[251] == 0xAA); } return status; }