xref: /openbmc/libcper/tests/fuzz_cper_buf_to_ir.c (revision edee0a37f42ce7c9444b3b470b0c5df407caf629)
1*edee0a37SEd Tanous #include <assert.h>
2*edee0a37SEd Tanous #include "libcper/cper-parse.h"
3*edee0a37SEd Tanous #include "test-utils.h"
4*edee0a37SEd Tanous 
LLVMFuzzerTestOneInput(const uint8_t * data,size_t size)5*edee0a37SEd Tanous int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
6*edee0a37SEd Tanous {
7*edee0a37SEd Tanous 	json_object *ir = cper_buf_to_ir(data, size);
8*edee0a37SEd Tanous 	if (ir == NULL) {
9*edee0a37SEd Tanous 		return 0;
10*edee0a37SEd Tanous 	}
11*edee0a37SEd Tanous 
12*edee0a37SEd Tanous 	int valid = schema_validate_from_file(ir, 0 /* single_section */,
13*edee0a37SEd Tanous 					      /*all_valid_bits*/ 0);
14*edee0a37SEd Tanous 	if (!valid) {
15*edee0a37SEd Tanous 		printf("JSON: %s\n", json_object_to_json_string(ir));
16*edee0a37SEd Tanous 	}
17*edee0a37SEd Tanous 	assert(valid);
18*edee0a37SEd Tanous 	json_object_put(ir);
19*edee0a37SEd Tanous 
20*edee0a37SEd Tanous 	return 0;
21*edee0a37SEd Tanous }
22