Coverage Report

Created: 2025-12-05 06:11

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/janet/test/fuzzers/fuzz_dostring.c
Line
Count
Source
1
#include <stdint.h>
2
#include <string.h>
3
#include <janet.h>
4
5
6.33k
int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
6
7
    /* init Janet */
8
6.33k
    janet_init();
9
10
    /* fuzz the parser */
11
6.33k
    JanetParser parser;
12
6.33k
    janet_parser_init(&parser);
13
76.6M
    for (int i = 0, done = 0; i < size; i++) {
14
76.6M
        switch (janet_parser_status(&parser)) {
15
0
            case JANET_PARSE_DEAD:
16
162
            case JANET_PARSE_ERROR:
17
162
                done = 1;
18
162
                break;
19
76.6M
            case JANET_PARSE_PENDING:
20
76.6M
                if (i == size) {
21
0
                    janet_parser_eof(&parser);
22
76.6M
                } else {
23
76.6M
                    janet_parser_consume(&parser, data[i]);
24
76.6M
                }
25
76.6M
                break;
26
51.1k
            case JANET_PARSE_ROOT:
27
51.1k
                if (i >= size) {
28
0
                    janet_parser_eof(&parser);
29
51.1k
                } else {
30
51.1k
                    janet_parser_consume(&parser, data[i]);
31
51.1k
                }
32
51.1k
                break;
33
76.6M
        }
34
35
76.6M
        if (done == 1)
36
162
            break;
37
76.6M
    }
38
6.33k
    janet_parser_deinit(&parser);
39
40
    /* cleanup Janet */
41
6.33k
    janet_deinit();
42
43
6.33k
    return 0;
44
6.33k
}
45