Home | History | Annotate | Download | only in issue_247
      1 #include <pb_encode.h>
      2 #include <unittests.h>
      3 #include <string.h>
      4 #include "padding.pb.h"
      5 
      6 int main()
      7 {
      8     int status = 0;
      9 
     10     TestMessage msg;
     11 
     12     /* Set padding bytes to garbage */
     13     memset(&msg, 0xAA, sizeof(msg));
     14 
     15     /* Set all meaningful fields to 0 */
     16     msg.submsg.boolfield = false;
     17     msg.submsg.intfield = 0;
     18 
     19     /* Test encoding */
     20     {
     21         pb_byte_t buf[128] = {0};
     22         pb_ostream_t stream = pb_ostream_from_buffer(buf, sizeof(buf));
     23         TEST(pb_encode(&stream, TestMessage_fields, &msg));
     24 
     25         /* Because all fields have zero values, proto3 encoder
     26          * shouldn't write out anything. */
     27         TEST(stream.bytes_written == 0);
     28     }
     29 
     30     return status;
     31 }
     32 
     33