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

          Line data    Source code
       1             : #include <stdio.h>
       2             : #include <stdbool.h>
       3             : #include <string.h>
       4             : #include <assert.h>
       5             : #include <pb_encode.h>
       6             : #include <pb_decode.h>
       7             : #include "unittests.h"
       8             : #include "naming_style.pb.h"
       9             : 
      10           1 : int main()
      11             : {
      12           1 :     int status = 0;
      13           1 :     main_message_t message = MAIN_MESSAGE_INIT_ZERO;
      14             : 
      15             :     /* Verify that all members have the expected names */
      16           1 :     message.lucky_number = 13;
      17           1 :     message.required_number = 1;
      18           1 :     message.repeated_number[0] = 1;
      19           1 :     message.repeated_ints = NULL;
      20             : 
      21           1 :     message.my_enum1 = MY_ENUM1_ENUM_THIRD;
      22           1 :     message.my_enum2 = MY_ENUM2_ENUM2_ENTRY;
      23           1 :     message.my_enum3 = MY_ENUM2_ENUM2_ENTRY;
      24           1 :     message.my_enum4.arg = NULL;
      25             : 
      26           1 :     message.string_values1 = NULL;
      27           1 :     message.string_values2[0][0] = 'a';
      28           1 :     message.optional_string.arg = NULL;
      29           1 :     message.required_string[0] = 'a';
      30             : 
      31           1 :     message.repeated_fixed32[0] = 1;
      32             : 
      33           1 :     message.required_bytes1[0] = 0;
      34           1 :     message.required_bytes2.size = 0;
      35           1 :     message.repeated_bytes1_count = 0;
      36           1 :     message.repeated_bytes2 = NULL;
      37             : 
      38           1 :     message.has_sub_message1 = true;
      39           1 :     message.sub_message1.has_test_value = true;
      40           1 :     message.sub_message1.test_value = 0;
      41           1 :     message.sub_message2.arg = NULL;
      42           1 :     message.sub_message3.test_value = 0;
      43             : 
      44           1 :     message.which_one_of_name = MAIN_MESSAGE_TEST_MESSAGE2_TAG;
      45           1 :     message.one_of_name.test_message2.has_test_value = true;
      46           1 :     message.one_of_name.test_message2.test_value = 5;
      47             : 
      48           1 :     message.which_one_of_name2 = MAIN_MESSAGE_TEST_MESSAGE5_TAG;
      49           1 :     message.test_message5.test_value = 5;
      50             : 
      51           1 :     TEST(strcmp("ENTRY_FIRST", my_enum1_name(MY_ENUM1_ENTRY_FIRST)) == 0);
      52             : 
      53             :     /* Verify that the descriptor structure is at least mostly correct
      54             :      * by doing a round-trip encoding test.
      55             :      */
      56             :     {
      57             :         uint8_t buffer1[256];
      58             :         uint8_t buffer2[256];
      59           1 :         pb_ostream_t ostream1 = pb_ostream_from_buffer(buffer1, sizeof(buffer1));
      60           1 :         pb_ostream_t ostream2 = pb_ostream_from_buffer(buffer2, sizeof(buffer2));
      61             :         pb_istream_t istream;
      62           1 :         main_message_t message2 = MAIN_MESSAGE_INIT_ZERO;
      63             : 
      64           1 :         TEST(pb_encode(&ostream1, &main_message_t_msg, &message));
      65             : 
      66           1 :         istream = pb_istream_from_buffer(buffer1, ostream1.bytes_written);
      67           1 :         TEST(pb_decode(&istream, &main_message_t_msg, &message2));
      68             : 
      69             :         /* Encoding a second time should produce same output */
      70           1 :         TEST(pb_encode(&ostream2, &main_message_t_msg, &message2));
      71             : 
      72           1 :         TEST(ostream2.bytes_written == ostream1.bytes_written);
      73           1 :         TEST(memcmp(buffer1, buffer2, ostream1.bytes_written) == 0);
      74             :     }
      75             : 
      76           1 :     return status;
      77             : }

Generated by: LCOV version 1.14