defaults.c 1.3 KB

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