1 #include "defaults.pb.h" 2 #include <unittests.h> 3 #include <pb_decode.h> 4 check_defaults(const DefaultsMsg * msg)5int check_defaults(const DefaultsMsg *msg) 6 { 7 int status = 0; 8 9 TEST(msg->b1[0] == 0xDE && msg->b1[1] == 0xAD && msg->b1[2] == 0x00 && 10 msg->b1[3] == 0xBE && msg->b1[4] == 0xEF); 11 TEST(msg->b2.bytes[0] == 0xDE && msg->b2.bytes[1] == 0xAD && 12 msg->b2.bytes[2] == 0x00 && msg->b2.bytes[3] == 0xBE && 13 msg->b2.bytes[4] == 0xEF && msg->b2.size == 5); 14 TEST(msg->b3.bytes[0] == 0xDE && msg->b3.bytes[1] == 0xAD && 15 msg->b3.bytes[2] == 0x00 && msg->b3.bytes[3] == 0xBE && 16 msg->b3.bytes[4] == 0xEF && msg->b2.size == 5); 17 TEST(msg->s1[0] == (char)0xC3 && msg->s1[1] == (char)0xA4 && 18 msg->s1[2] == (char)0xC3 && msg->s1[3] == (char)0xB6 && 19 msg->s1[4] == '\0'); 20 21 return status; 22 } 23 main()24int main() 25 { 26 int status = 0; 27 28 { 29 DefaultsMsg msg = DefaultsMsg_init_default; 30 COMMENT("Checking defaults from static initializer"); 31 status += check_defaults(&msg); 32 } 33 34 { 35 DefaultsMsg msg = DefaultsMsg_init_zero; 36 pb_istream_t empty = {0,0,0}; 37 pb_decode(&empty, DefaultsMsg_fields, &msg); 38 COMMENT("Checking defaults set at runtime"); 39 status += check_defaults(&msg); 40 } 41 42 return status; 43 } 44 45