Improve fuzzer code coverage (#239)
* fuzz: test grapheme break functions * fuzz: cover character lumping
This commit is contained in:
parent
39dbf507d7
commit
63f31c908e
@ -11,7 +11,7 @@ int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
|||||||
if(data[size-1] != '\0') return 0;
|
if(data[size-1] != '\0') return 0;
|
||||||
|
|
||||||
const uint8_t* ptr = data;
|
const uint8_t* ptr = data;
|
||||||
utf8proc_int32_t c = 0;
|
utf8proc_int32_t c = 0, c_prev = 0, state = 0;
|
||||||
utf8proc_option_t options;
|
utf8proc_option_t options;
|
||||||
utf8proc_ssize_t ret, bytes = 0;
|
utf8proc_ssize_t ret, bytes = 0;
|
||||||
size_t len = strlen((const char*)data);
|
size_t len = strlen((const char*)data);
|
||||||
@ -34,6 +34,11 @@ int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
|||||||
utf8proc_category(c);
|
utf8proc_category(c);
|
||||||
utf8proc_category_string(c);
|
utf8proc_category_string(c);
|
||||||
utf8proc_codepoint_valid(c);
|
utf8proc_codepoint_valid(c);
|
||||||
|
|
||||||
|
utf8proc_grapheme_break(c_prev, c);
|
||||||
|
utf8proc_grapheme_break_stateful(c_prev, c, &state);
|
||||||
|
|
||||||
|
c_prev = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
utf8proc_int32_t *copy = size >= 4 ? NULL : malloc(size);
|
utf8proc_int32_t *copy = size >= 4 ? NULL : malloc(size);
|
||||||
@ -58,6 +63,10 @@ int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
|||||||
memcpy(copy, data, size);
|
memcpy(copy, data, size);
|
||||||
utf8proc_normalize_utf32(copy, size, options);
|
utf8proc_normalize_utf32(copy, size, options);
|
||||||
|
|
||||||
|
options = UTF8PROC_LUMP;
|
||||||
|
memcpy(copy, data, size);
|
||||||
|
utf8proc_normalize_utf32(copy, size, options);
|
||||||
|
|
||||||
options = 0;
|
options = 0;
|
||||||
memcpy(copy, data, size);
|
memcpy(copy, data, size);
|
||||||
utf8proc_normalize_utf32(copy, size, options);
|
utf8proc_normalize_utf32(copy, size, options);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user