mirror of
https://github.com/google/pebble.git
synced 2025-03-20 19:01:21 +00:00
39 lines
800 B
C
39 lines
800 B
C
#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;
|
|
}
|
|
|