123456789101112131415161718192021222324252627282930313233343536373839 |
- #include <pb_decode.h>
- #include <stdio.h>
- #include <string.h>
- #include <assert.h>
- #include "test_helpers.h"
- #include "test.pb.h"
- bool stream_callback(pb_istream_t *stream, uint8_t *buf, size_t count)
- {
- FILE *file = (FILE*)stream->state;
- size_t len = fread(buf, 1, count, file);
-
- if (len == count)
- {
- return true;
- }
- else
- {
- stream->bytes_left = 0;
- return false;
- }
- }
- int main()
- {
- pb_istream_t stream = {&stream_callback, NULL, SIZE_MAX};
- MyMessage msg = MyMessage_init_default;
- bool status;
- stream.state = stdin;
- SET_BINARY_MODE(stdin);
- set_max_alloc_bytes(512);
- status = pb_decode(&stream, MyMessage_fields, &msg);
- assert(!status);
- assert(strcmp(stream.errmsg, "realloc failed") == 0);
- return 0;
- }
|