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

          Line data    Source code
       1             : #define PB_VALIDATE_UTF8
       2             : #include "pb_common.c"
       3             : 
       4             : #include <stdio.h>
       5             : #include <string.h>
       6             : #include "unittests.h"
       7             : #include "../alltypes/alltypes.pb.h"
       8             : 
       9           1 : int main()
      10             : {
      11           1 :     int status = 0;
      12             : 
      13             :     {
      14             :         AllTypes msg;
      15             :         pb_field_iter_t iter;
      16             : 
      17           1 :         COMMENT("Test field iterator logic on AllTypes");
      18             : 
      19           1 :         TEST(pb_field_iter_begin(&iter, AllTypes_fields, &msg))
      20             : 
      21           1 :         TEST(iter.tag == 1  && iter.pData == &msg.req_int32 && !iter.pSize)
      22           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 2  && iter.pData == &msg.req_int64    && !iter.pSize)
      23           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 3  && iter.pData == &msg.req_uint32   && !iter.pSize)
      24           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 4  && iter.pData == &msg.req_uint64   && !iter.pSize)
      25           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 5  && iter.pData == &msg.req_sint32   && !iter.pSize)
      26           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 6  && iter.pData == &msg.req_sint64   && !iter.pSize)
      27           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 7  && iter.pData == &msg.req_bool     && !iter.pSize)
      28           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 8  && iter.pData == &msg.req_fixed32  && !iter.pSize)
      29           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 9  && iter.pData == &msg.req_sfixed32 && !iter.pSize)
      30           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 10 && iter.pData == &msg.req_float    && !iter.pSize)
      31           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 11 && iter.pData == &msg.req_fixed64  && !iter.pSize)
      32           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 12 && iter.pData == &msg.req_sfixed64 && !iter.pSize)
      33           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 13 && iter.pData == &msg.req_double   && !iter.pSize)
      34           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 14 && iter.pData == &msg.req_string   && !iter.pSize)
      35           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 15 && iter.pData == &msg.req_bytes    && !iter.pSize)
      36           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 16 && iter.pData == &msg.req_submsg   && !iter.pSize
      37             :              && iter.submsg_desc == SubMessage_fields)
      38           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 17 && iter.pData == &msg.req_enum     && !iter.pSize)
      39           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 18 && iter.pData == &msg.req_emptymsg && !iter.pSize)
      40           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 19 && iter.pData == &msg.req_fbytes   && !iter.pSize)
      41           1 :         TEST(iter.required_field_index == 18)
      42           1 :         TEST(iter.submessage_index == 2)
      43             : 
      44           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 21 && iter.pData == &msg.rep_int32    && iter.pSize == &msg.rep_int32_count)
      45           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 22 && iter.pData == &msg.rep_int64    && iter.pSize == &msg.rep_int64_count)
      46           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 23 && iter.pData == &msg.rep_uint32   && iter.pSize == &msg.rep_uint32_count)
      47           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 24 && iter.pData == &msg.rep_uint64   && iter.pSize == &msg.rep_uint64_count)
      48           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 25 && iter.pData == &msg.rep_sint32   && iter.pSize == &msg.rep_sint32_count)
      49           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 26 && iter.pData == &msg.rep_sint64   && iter.pSize == &msg.rep_sint64_count)
      50           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 27 && iter.pData == &msg.rep_bool     && iter.pSize == &msg.rep_bool_count)
      51           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 28 && iter.pData == &msg.rep_fixed32  && iter.pSize == &msg.rep_fixed32_count)
      52           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 29 && iter.pData == &msg.rep_sfixed32 && iter.pSize == &msg.rep_sfixed32_count)
      53           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 30 && iter.pData == &msg.rep_float    && iter.pSize == &msg.rep_float_count)
      54           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 31 && iter.pData == &msg.rep_fixed64  && iter.pSize == &msg.rep_fixed64_count)
      55           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 32 && iter.pData == &msg.rep_sfixed64 && iter.pSize == &msg.rep_sfixed64_count)
      56           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 33 && iter.pData == &msg.rep_double   && iter.pSize == &msg.rep_double_count)
      57           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 34 && iter.pData == &msg.rep_string   && iter.pSize == &msg.rep_string_count)
      58           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 35 && iter.pData == &msg.rep_bytes    && iter.pSize == &msg.rep_bytes_count)
      59           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 36 && iter.pData == &msg.rep_submsg   && iter.pSize == &msg.rep_submsg_count)
      60           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 37 && iter.pData == &msg.rep_enum     && iter.pSize == &msg.rep_enum_count)
      61           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 38 && iter.pData == &msg.rep_emptymsg && iter.pSize == &msg.rep_emptymsg_count)
      62           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 39 && iter.pData == &msg.rep_fbytes   && iter.pSize == &msg.rep_fbytes_count)
      63           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 40 && iter.pData == &msg.rep_farray   && iter.pSize == &iter.array_size && iter.array_size == 5)
      64           1 :         TEST(iter.required_field_index == 19)
      65           1 :         TEST(iter.submessage_index == 4)
      66             : 
      67           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 41 && iter.pData == &msg.opt_int32    && iter.pSize == &msg.has_opt_int32   )
      68           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 42 && iter.pData == &msg.opt_int64    && iter.pSize == &msg.has_opt_int64   )
      69           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 43 && iter.pData == &msg.opt_uint32   && iter.pSize == &msg.has_opt_uint32  )
      70           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 44 && iter.pData == &msg.opt_uint64   && iter.pSize == &msg.has_opt_uint64  )
      71           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 45 && iter.pData == &msg.opt_sint32   && iter.pSize == &msg.has_opt_sint32  )
      72           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 46 && iter.pData == &msg.opt_sint64   && iter.pSize == &msg.has_opt_sint64  )
      73           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 47 && iter.pData == &msg.opt_bool     && iter.pSize == &msg.has_opt_bool    )
      74           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 48 && iter.pData == &msg.opt_fixed32  && iter.pSize == &msg.has_opt_fixed32 )
      75           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 49 && iter.pData == &msg.opt_sfixed32 && iter.pSize == &msg.has_opt_sfixed32)
      76           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 50 && iter.pData == &msg.opt_float    && iter.pSize == &msg.has_opt_float   )
      77           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 51 && iter.pData == &msg.opt_fixed64  && iter.pSize == &msg.has_opt_fixed64 )
      78           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 52 && iter.pData == &msg.opt_sfixed64 && iter.pSize == &msg.has_opt_sfixed64)
      79           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 53 && iter.pData == &msg.opt_double   && iter.pSize == &msg.has_opt_double  )
      80           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 54 && iter.pData == &msg.opt_string   && iter.pSize == &msg.has_opt_string  )
      81           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 55 && iter.pData == &msg.opt_bytes    && iter.pSize == &msg.has_opt_bytes   )
      82           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 56 && iter.pData == &msg.opt_submsg   && iter.pSize == &msg.has_opt_submsg  )
      83           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 57 && iter.pData == &msg.opt_enum     && iter.pSize == &msg.has_opt_enum    )
      84           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 58 && iter.pData == &msg.opt_emptymsg && iter.pSize == &msg.has_opt_emptymsg)
      85           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 59 && iter.pData == &msg.opt_fbytes   && iter.pSize == &msg.has_opt_fbytes)
      86           1 :         TEST(iter.required_field_index == 19)
      87           1 :         TEST(iter.submessage_index == 6)
      88             : 
      89           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 60 && iter.pData == &msg.oneof.oneof_msg1  && iter.pSize == &msg.which_oneof   )
      90           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 61 && iter.pData == &msg.oneof.oneof_msg2  && iter.pSize == &msg.which_oneof   )
      91           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 62 && iter.pData == &msg.opt_non_zero_based_enum && iter.pSize == &msg.has_opt_non_zero_based_enum)
      92           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 63 && iter.pData == &msg.oneof.static_msg  && iter.pSize == &msg.which_oneof   )
      93           1 :         TEST(iter.required_field_index == 19)
      94           1 :         TEST(iter.submessage_index == 8)
      95             : 
      96           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 95 && iter.pData == &msg.rep_farray2 && iter.pSize == &iter.array_size && iter.array_size == 3)
      97           1 :         TEST(iter.required_field_index == 19)
      98           1 :         TEST(iter.submessage_index == 9)
      99             : 
     100           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 96 && iter.pData == &msg.req_intsizes && !iter.pSize)
     101           1 :         TEST(iter.required_field_index == 19)
     102           1 :         TEST(iter.submessage_index == 9)
     103             : 
     104           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 97 && iter.pData == &msg.req_ds8 && !iter.pSize)
     105           1 :         TEST(iter.required_field_index == 20)
     106           1 :         TEST(iter.submessage_index == 10)
     107             : 
     108           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 98 && iter.pData == &msg.req_limits && !iter.pSize)
     109           1 :         TEST(iter.required_field_index == 21)
     110           1 :         TEST(iter.submessage_index == 11)
     111             : 
     112           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 200 && iter.pData == &msg.extensions && !iter.pSize)
     113           1 :         TEST(iter.required_field_index == 22)
     114           1 :         TEST(iter.submessage_index == 12)
     115             : 
     116           1 :         TEST(pb_field_iter_next(&iter) && iter.tag == 999 && iter.pData == &msg.end && !iter.pSize)
     117           1 :         TEST(iter.required_field_index == 22)
     118           1 :         TEST(iter.submessage_index == 12)
     119             : 
     120           1 :         TEST(!pb_field_iter_next(&iter))
     121             : 
     122           1 :         TEST(iter.tag == 1  && iter.pData == &msg.req_int32 && !iter.pSize)
     123           1 :         TEST(iter.required_field_index == 0)
     124           1 :         TEST(iter.submessage_index == 0)
     125             :     }
     126             : 
     127             :     {
     128           1 :         COMMENT("Test pb_validate_utf8()");
     129             : 
     130           1 :         TEST(pb_validate_utf8("abcdefg"));
     131           1 :         TEST(pb_validate_utf8("\xc3\xa4\xc3\xa4\x6b\x6b\xc3\xb6\x6e\x65\x6e\x0a"));
     132           1 :         TEST(!pb_validate_utf8("\xc3\xa4\xc3\xa4\x6b\x6b\xb6\xc3\x6e\x65\x6e\x0a"));
     133           1 :         TEST(pb_validate_utf8("\xed\x9f\xbf"));
     134           1 :         TEST(pb_validate_utf8("\xee\x80\x80"));
     135           1 :         TEST(pb_validate_utf8("\xef\xbf\xbd"));
     136           1 :         TEST(pb_validate_utf8("\xf4\x8f\xbf\xbf"));
     137           1 :         TEST(!pb_validate_utf8("a\x80z"));
     138           1 :         TEST(!pb_validate_utf8("a\xbfz"));
     139           1 :         TEST(!pb_validate_utf8("a\xfez"));
     140           1 :         TEST(!pb_validate_utf8("a\xffz"));
     141           1 :         TEST(!pb_validate_utf8("a\xc0\xafz"));
     142           1 :         TEST(!pb_validate_utf8("a\xef\xbf\xbez"));
     143             :     }
     144             : 
     145           1 :     if (status != 0)
     146           0 :         fprintf(stdout, "\n\nSome tests FAILED!\n");
     147             : 
     148           1 :     return status;
     149             : }

Generated by: LCOV version 1.14