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