LCOV - code coverage report
Current view: top level - regression/issue_407 - test_extensions.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 44 44 100.0 %
Date: 2023-02-14 20:10:26 Functions: 1 1 100.0 %

          Line data    Source code
       1             : #include <pb_encode.h>
       2             : #include <pb_decode.h>
       3             : #include "extensions.pb.h"
       4             : #include "unittests.h"
       5             : 
       6           1 : int main()
       7             : {
       8             :     uint8_t buffer[256];
       9           1 :     int status = 0;
      10             :     size_t msglen;
      11             :     
      12             :     {
      13             :         pb_ostream_t stream;
      14           1 :         SimpleMessage msg = SimpleMessage_init_zero;
      15           1 :         ExtMessage extmsg = ExtMessage_init_zero;
      16           1 :         pb_extension_t ext = pb_extension_init_zero;
      17             :         
      18           1 :         COMMENT("Encoding message");
      19           1 :         msg.has_number = true;
      20           1 :         msg.number = 1234;
      21           1 :         extmsg.has_second_number = true;
      22           1 :         extmsg.second_number = 5678;
      23             :         
      24           1 :         msg.extensions = &ext;
      25           1 :         ext.type = &ExtMessage_ext_message_ext;
      26           1 :         ext.dest = &extmsg;
      27           1 :         ext.next = NULL;
      28             :         
      29           1 :         stream = pb_ostream_from_buffer(buffer, sizeof(buffer));
      30           1 :         TEST(pb_encode(&stream, SimpleMessage_fields, &msg));
      31           1 :         msglen = stream.bytes_written;
      32           1 :         TEST(msglen == 9); /* 3 for number, 3 for submsg tag+len, 3 for second_number */
      33           1 :         TEST(buffer[0] == 0x08); /* varint 1 */
      34           1 :         TEST(buffer[1] == 0xD2); /* number = 1234 */
      35           1 :         TEST(buffer[2] == 0x09);
      36           1 :         TEST(buffer[3] == 0xE2); /* submsg 1100 */
      37           1 :         TEST(buffer[4] == 0x44);
      38           1 :         TEST(buffer[5] == 0x03); /* length 3 */
      39           1 :         TEST(buffer[6] == 0x08); /* varint 1 */
      40           1 :         TEST(buffer[7] == 0xae); /* second_number = 5678 */
      41           1 :         TEST(buffer[8] == 0x2c);
      42             :     }
      43             : 
      44             :     {
      45             :         pb_istream_t stream;
      46           1 :         SimpleMessage msg = SimpleMessage_init_zero;
      47           1 :         ExtMessage extmsg = ExtMessage_init_zero;
      48           1 :         pb_extension_t ext = pb_extension_init_zero;
      49             :         
      50           1 :         COMMENT("Decoding message");
      51             :         
      52           1 :         msg.extensions = &ext;
      53           1 :         ext.type = &ExtMessage_ext_message_ext;
      54           1 :         ext.dest = &extmsg;
      55           1 :         ext.next = NULL;
      56           1 :         ext.found = false;
      57             :         
      58           1 :         stream = pb_istream_from_buffer(buffer, msglen);
      59           1 :         TEST(pb_decode(&stream, SimpleMessage_fields, &msg));
      60           1 :         TEST(msg.has_number);
      61           1 :         TEST(msg.number == 1234);
      62           1 :         TEST(ext.found);
      63           1 :         TEST(extmsg.has_second_number);
      64           1 :         TEST(extmsg.second_number == 5678);
      65             :     }
      66             :     
      67           1 :     return status;
      68             : }

Generated by: LCOV version 1.14