Add random mutation tests
This commit is contained in:
parent
e305012b31
commit
233d616ebf
12 changed files with 443 additions and 127 deletions
|
|
@ -28,10 +28,10 @@
|
|||
fputs("\n\n", self->dot_graph_file); \
|
||||
}
|
||||
|
||||
#define LOG_TREE() \
|
||||
if (self->dot_graph_file) { \
|
||||
ts_subtree_print_dot_graph(self->finished_tree, self->language, self->dot_graph_file); \
|
||||
fputs("\n", self->dot_graph_file); \
|
||||
#define LOG_TREE(tree) \
|
||||
if (self->dot_graph_file) { \
|
||||
ts_subtree_print_dot_graph(tree, self->language, self->dot_graph_file); \
|
||||
fputs("\n", self->dot_graph_file); \
|
||||
}
|
||||
|
||||
#define SYM_NAME(symbol) ts_language_symbol_name(self->language, symbol)
|
||||
|
|
@ -417,6 +417,13 @@ static Subtree ts_parser__lex(TSParser *self, StackVersion version, TSStateId pa
|
|||
parse_state,
|
||||
self->language
|
||||
);
|
||||
|
||||
LOG(
|
||||
"lexed_lookahead sym:%s, size:%u, character:'%c'",
|
||||
SYM_NAME(ts_subtree_symbol(result)),
|
||||
ts_subtree_total_size(result).bytes,
|
||||
first_error_character
|
||||
);
|
||||
} else {
|
||||
if (self->lexer.token_end_position.bytes < self->lexer.token_start_position.bytes) {
|
||||
self->lexer.token_start_position = self->lexer.token_end_position;
|
||||
|
|
@ -467,13 +474,14 @@ static Subtree ts_parser__lex(TSParser *self, StackVersion version, TSStateId pa
|
|||
length
|
||||
);
|
||||
}
|
||||
|
||||
LOG(
|
||||
"lexed_lookahead sym:%s, size:%u",
|
||||
SYM_NAME(ts_subtree_symbol(result)),
|
||||
ts_subtree_total_size(result).bytes
|
||||
);
|
||||
}
|
||||
|
||||
LOG(
|
||||
"lexed_lookahead sym:%s, size:%u",
|
||||
SYM_NAME(ts_subtree_symbol(result)),
|
||||
ts_subtree_total_size(result).bytes
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1623,6 +1631,7 @@ TSTree *ts_parser_parse(TSParser *self, const TSTree *old_tree, TSInput input) {
|
|||
);
|
||||
reusable_node_reset(&self->reusable_node, old_tree->root);
|
||||
LOG("parse_after_edit");
|
||||
LOG_TREE(self->old_tree);
|
||||
for (unsigned i = 0; i < self->included_range_differences.size; i++) {
|
||||
TSRange *range = &self->included_range_differences.contents[i];
|
||||
LOG("different_included_range %u - %u", range->start_byte, range->end_byte);
|
||||
|
|
@ -1681,7 +1690,7 @@ TSTree *ts_parser_parse(TSParser *self, const TSTree *old_tree, TSInput input) {
|
|||
|
||||
ts_subtree_balance(self->finished_tree, &self->tree_pool, self->language);
|
||||
LOG("done");
|
||||
LOG_TREE();
|
||||
LOG_TREE(self->finished_tree);
|
||||
|
||||
TSTree *result = ts_tree_new(
|
||||
self->finished_tree,
|
||||
|
|
|
|||
|
|
@ -879,7 +879,7 @@ void ts_subtree__print_dot_graph(const Subtree *self, uint32_t start_offset,
|
|||
"error-cost: %u\n"
|
||||
"has-changes: %u\n"
|
||||
"repeat-depth: %u\n"
|
||||
"lookahead-bytes: %u\"]\n",
|
||||
"lookahead-bytes: %u",
|
||||
start_offset, end_offset,
|
||||
ts_subtree_parse_state(*self),
|
||||
ts_subtree_error_cost(*self),
|
||||
|
|
@ -888,6 +888,12 @@ void ts_subtree__print_dot_graph(const Subtree *self, uint32_t start_offset,
|
|||
ts_subtree_lookahead_bytes(*self)
|
||||
);
|
||||
|
||||
if (ts_subtree_is_error(*self) && ts_subtree_child_count(*self) == 0) {
|
||||
fprintf(f, "\ncharacter: '%c'", self->ptr->lookahead_char);
|
||||
}
|
||||
|
||||
fprintf(f, "\"]\n");
|
||||
|
||||
uint32_t child_start_offset = start_offset;
|
||||
uint32_t structural_child_index = 0;
|
||||
const TSSymbol *alias_sequence = ts_language_alias_sequence(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue