Coverage Report

Created: 2025-07-11 06:35

/src/nanopb/tests/build/fuzztest/flakystream.c
Line
Count
Source
1
#include "flakystream.h"
2
#include <string.h>
3
4
bool flakystream_callback(pb_istream_t *stream, pb_byte_t *buf, size_t count)
5
79.3M
{
6
79.3M
    flakystream_t *state = stream->state;
7
8
79.3M
    if (state->position + count > state->msglen)
9
11.1k
    {
10
11.1k
        stream->bytes_left = 0;
11
11.1k
        return false;
12
11.1k
    }
13
79.3M
    else if (state->position + count > state->fail_after)
14
4.64k
    {
15
4.64k
        PB_RETURN_ERROR(stream, "flaky error");
16
4.64k
    }
17
18
79.3M
    memcpy(buf, state->buffer + state->position, count);
19
79.3M
    state->position += count;
20
79.3M
    return true;
21
79.3M
}
22
23
void flakystream_init(flakystream_t *stream, const uint8_t *buffer, size_t msglen, size_t fail_after)
24
19.0k
{
25
19.0k
    memset(stream, 0, sizeof(*stream));
26
19.0k
    stream->stream.callback = flakystream_callback;
27
19.0k
    stream->stream.bytes_left = SIZE_MAX;
28
19.0k
    stream->stream.state = stream;
29
19.0k
    stream->buffer = buffer;
30
19.0k
    stream->position = 0;
31
19.0k
    stream->msglen = msglen;
32
19.0k
    stream->fail_after = fail_after;
33
19.0k
}