xref: /aosp_15_r20/external/nanopb-c/tests/regression/issue_547/test.c (revision c8d645cafcee3f91213d30caa0fe303887010b9b)
1*c8d645caSAndroid Build Coastguard Worker #include <string.h>
2*c8d645caSAndroid Build Coastguard Worker #include <pb_encode.h>
3*c8d645caSAndroid Build Coastguard Worker #include <unittests.h>
4*c8d645caSAndroid Build Coastguard Worker #include "test.pb.h"
5*c8d645caSAndroid Build Coastguard Worker 
main()6*c8d645caSAndroid Build Coastguard Worker int main()
7*c8d645caSAndroid Build Coastguard Worker {
8*c8d645caSAndroid Build Coastguard Worker     pb_byte_t buf[512];
9*c8d645caSAndroid Build Coastguard Worker     MyMessage msg = MyMessage_init_zero;
10*c8d645caSAndroid Build Coastguard Worker     pb_ostream_t stream = pb_ostream_from_buffer(buf, sizeof(buf));
11*c8d645caSAndroid Build Coastguard Worker 
12*c8d645caSAndroid Build Coastguard Worker     msg.mybytes.size = 0xFFFFFFFF;
13*c8d645caSAndroid Build Coastguard Worker 
14*c8d645caSAndroid Build Coastguard Worker     if (pb_encode(&stream, MyMessage_fields, &msg))
15*c8d645caSAndroid Build Coastguard Worker     {
16*c8d645caSAndroid Build Coastguard Worker         fprintf(stderr, "Failure: expected pb_encode() to fail.\n");
17*c8d645caSAndroid Build Coastguard Worker         return 1;
18*c8d645caSAndroid Build Coastguard Worker     }
19*c8d645caSAndroid Build Coastguard Worker     else if (strcmp(PB_GET_ERROR(&stream), "bytes size exceeded") != 0)
20*c8d645caSAndroid Build Coastguard Worker     {
21*c8d645caSAndroid Build Coastguard Worker         fprintf(stderr, "Unexpected encoding error: %s\n", PB_GET_ERROR(&stream));
22*c8d645caSAndroid Build Coastguard Worker         return 2;
23*c8d645caSAndroid Build Coastguard Worker     }
24*c8d645caSAndroid Build Coastguard Worker     else
25*c8d645caSAndroid Build Coastguard Worker     {
26*c8d645caSAndroid Build Coastguard Worker         return 0;
27*c8d645caSAndroid Build Coastguard Worker     }
28*c8d645caSAndroid Build Coastguard Worker }
29