blob: 4baef7b8690b82489e25953361e0c3f18e2b9557 [file] [log] [blame]
Ed Tanous8121f7e2025-03-06 14:39:07 -08001#include "libcper/cper-parse.h"
Ed Tanousd6b62632025-03-14 15:30:07 -07002#include "test-utils.hpp"
Ed Tanous8121f7e2025-03-06 14:39:07 -08003
4extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
5{
6 json_object *ir = cper_buf_to_ir(data, size);
Ed Tanousd6b62632025-03-14 15:30:07 -07007 if (ir == NULL) {
8 return 0;
Ed Tanous8121f7e2025-03-06 14:39:07 -08009 }
Ed Tanousd6b62632025-03-14 15:30:07 -070010 char *str = strdup(json_object_to_json_string(ir));
11
12 nlohmann::json jsonData = nlohmann::json::parse(str, nullptr, false);
13 free(str);
14 assert(jsonData.is_discarded() == false);
15 std::string error_message;
16 static std::unique_ptr<valijson::Schema> schema =
17 load_schema(AddRequiredProps::NO, 0);
18
19 int valid = schema_validate_from_file(*schema, jsonData, error_message);
20 if (!valid) {
21 std::cout << "JSON: " << jsonData.dump(4) << std::endl;
22 std::cout << "Error: " << error_message << std::endl;
23 }
24 assert(valid);
25 json_object_put(ir);
Ed Tanous8121f7e2025-03-06 14:39:07 -080026
27 return 0;
28}