xref: /aosp_15_r20/external/nanopb-c/tests/regression/issue_395/test.c (revision c8d645cafcee3f91213d30caa0fe303887010b9b)
1*c8d645caSAndroid Build Coastguard Worker #include <stdio.h>
2*c8d645caSAndroid Build Coastguard Worker #include <stdlib.h>
3*c8d645caSAndroid Build Coastguard Worker #include <string.h>
4*c8d645caSAndroid Build Coastguard Worker #include <pb_encode.h>
5*c8d645caSAndroid Build Coastguard Worker #include <pb_decode.h>
6*c8d645caSAndroid Build Coastguard Worker #include "test.pb.h"
7*c8d645caSAndroid Build Coastguard Worker #include "unittests.h"
8*c8d645caSAndroid Build Coastguard Worker 
main(int argc,char ** argv)9*c8d645caSAndroid Build Coastguard Worker int main(int argc, char **argv)
10*c8d645caSAndroid Build Coastguard Worker {
11*c8d645caSAndroid Build Coastguard Worker     int status = 0;
12*c8d645caSAndroid Build Coastguard Worker     uint8_t buffer[512] = {0};
13*c8d645caSAndroid Build Coastguard Worker     int i;
14*c8d645caSAndroid Build Coastguard Worker     pb_ostream_t ostream;
15*c8d645caSAndroid Build Coastguard Worker 
16*c8d645caSAndroid Build Coastguard Worker     Reply reply = Reply_init_zero;
17*c8d645caSAndroid Build Coastguard Worker     Reply_Result request_result = Reply_Result_OK;
18*c8d645caSAndroid Build Coastguard Worker 
19*c8d645caSAndroid Build Coastguard Worker     ostream = pb_ostream_from_buffer(buffer, sizeof(buffer));
20*c8d645caSAndroid Build Coastguard Worker     reply.result = request_result;
21*c8d645caSAndroid Build Coastguard Worker     if (!pb_encode(&ostream, Reply_fields, &reply)) {
22*c8d645caSAndroid Build Coastguard Worker         fprintf(stderr, "Encode failed: %s\n", PB_GET_ERROR(&ostream));
23*c8d645caSAndroid Build Coastguard Worker         return 1;
24*c8d645caSAndroid Build Coastguard Worker     }
25*c8d645caSAndroid Build Coastguard Worker 
26*c8d645caSAndroid Build Coastguard Worker     printf("response payload (%d):", (int)ostream.bytes_written);
27*c8d645caSAndroid Build Coastguard Worker     for (i = 0; i < ostream.bytes_written; i++) {
28*c8d645caSAndroid Build Coastguard Worker         printf("%02X", buffer[i]);
29*c8d645caSAndroid Build Coastguard Worker     }
30*c8d645caSAndroid Build Coastguard Worker     printf("\n");
31*c8d645caSAndroid Build Coastguard Worker 
32*c8d645caSAndroid Build Coastguard Worker     TEST(ostream.bytes_written == 2);
33*c8d645caSAndroid Build Coastguard Worker     TEST(buffer[0] == 0x08);
34*c8d645caSAndroid Build Coastguard Worker     TEST(buffer[1] == 0x01);
35*c8d645caSAndroid Build Coastguard Worker 
36*c8d645caSAndroid Build Coastguard Worker     return status;
37*c8d645caSAndroid Build Coastguard Worker }
38*c8d645caSAndroid Build Coastguard Worker 
39