/src/glaze/fuzzing/csv_parsing.cpp
Line | Count | Source |
1 | | #include <array> |
2 | | #include <cstddef> |
3 | | #include <cstdint> |
4 | | #include <glaze/glaze.hpp> |
5 | | #include <vector> |
6 | | |
7 | | struct my_struct |
8 | | { |
9 | | std::vector<int> num1{}; |
10 | | std::deque<float> num2{}; |
11 | | std::vector<bool> maybe{}; |
12 | | std::vector<std::array<int, 3>> v3s{}; |
13 | | }; |
14 | | |
15 | | extern "C" int LLVMFuzzerTestOneInput(const uint8_t* Data, size_t Size) |
16 | 7.47k | { |
17 | 7.47k | if (Size < 1) return 0; |
18 | | |
19 | 7.47k | const bool colwise = Data[0] & 0x1; |
20 | 7.47k | Size -= 1; |
21 | 7.47k | Data += 1; |
22 | | |
23 | 7.47k | my_struct obj{}; |
24 | 7.47k | std::string_view input{(const char*)Data, Size}; |
25 | 7.47k | if (colwise) { |
26 | 3.80k | [[maybe_unused]] auto parsed = glz::read_csv<glz::colwise>(obj, input); |
27 | 3.80k | } |
28 | 3.66k | else { |
29 | 3.66k | [[maybe_unused]] auto parsed = glz::read_csv<glz::rowwise>(obj, input); |
30 | 3.66k | } |
31 | | |
32 | 7.47k | return 0; |
33 | 7.47k | } |