Line data Source code
1 : #include <stdio.h> 2 : #include <stdlib.h> 3 : #include <string.h> 4 : #include <pb_encode.h> 5 : #include <pb_decode.h> 6 : #include "oneofmsg.pb.h" 7 : #include "unittests.h" 8 : 9 1 : int main(int argc, char **argv) 10 : { 11 1 : int status = 0; 12 : uint8_t buffer[512]; 13 1 : pb_size_t msglen = 0; 14 : 15 : { 16 1 : pb_ostream_t stream = pb_ostream_from_buffer(buffer, sizeof(buffer)); 17 1 : BodyMessage msg = BodyMessage_init_zero; 18 : 19 1 : msg.which_body_type = BodyMessage_device_data_crypted_tag; 20 1 : msg.body_type.device_data_crypted.size = 252; 21 1 : memset(msg.body_type.device_data_crypted.bytes, 0xAA, 252); 22 : 23 1 : TEST(pb_encode(&stream, BodyMessage_fields, &msg)); 24 : 25 1 : msglen = stream.bytes_written; 26 1 : TEST(msglen > 252); 27 : } 28 : 29 : { 30 1 : pb_istream_t stream = pb_istream_from_buffer(buffer, msglen); 31 1 : BodyMessage msg = BodyMessage_init_zero; 32 : 33 1 : TEST(pb_decode(&stream, BodyMessage_fields, &msg)); 34 : 35 1 : TEST(msg.which_body_type == BodyMessage_device_data_crypted_tag); 36 1 : TEST(msg.body_type.device_data_crypted.size == 252); 37 1 : TEST(msg.body_type.device_data_crypted.bytes[251] == 0xAA); 38 : } 39 : 40 1 : return status; 41 : } 42 :