Fuzz introspector: parso_diff_fuzz
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
38 90 parso.python.diff.DiffParser._parse call site: 00090 parso.python.diff._NodesTree.copy_nodes
24 164 parso.python.diff._get_previous_leaf_if_indentation call site: 00164 parso.python.diff._assert_valid_graph
14 52 parso.python.diff.DiffParser._diff_tokenize call site: 00052 parso.python.diff._suite_or_file_input_is_valid
4 136 parso.utils.split_lines call site: 00136 parso.python.diff.DiffParser._parse
4 146 parso.python.diff._get_next_leaf_if_indentation call site: 00146 leaf.get_next_leaf
3 38 parso.python.diff.DiffParser.update call site: 00038 parso.python.diff.DiffParser._copy_from_old_parser
3 46 parso.python.diff._ends_with_newline call site: 00046 parso.python.diff.DiffParser._parse
3 82 parso.python.diff._NodesTree.add_parsed_nodes call site: 00082 parso.python.diff._NodesTreeNode.add_tree_nodes
3 160 parso.python.diff._NodesTree.close call site: 00160 parso.python.diff._assert_valid_graph
2 42 parso.python.diff._ends_with_newline call site: 00042 leaf.get_previous_leaf
2 156 parso.python.diff._NodesTree.close call site: 00156 .len
1 86 parso.python.diff._NodesTreeNode.add_tree_nodes call site: 00086 parso.python.diff._NodesTree._update_parsed_node_tos

Fuzzer calltree

0 ...parso_diff_fuzz.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 parso.load_grammar [function] [call site] 00002
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00003
1 parso.parse [function] [call site] 00004
2 kwargs.pop [function] [call site] 00005
2 parso.grammar.load_grammar [function] [call site] 00006
3 parso.utils.parse_version_string [function] [call site] 00007
4 <builtin>.isinstance [function] [call site] 00008
4 parso.utils._parse_version [function] [call site] 00009
5 match.group [function] [call site] 00011
5 <builtin>.int [function] [call site] 00012
5 match.group [function] [call site] 00013
5 <builtin>.int [function] [call site] 00014
5 typing.NamedTuple.__init__ [function] [call site] 00015
3 typing.NamedTuple.__init__ [function] [call site] 00016
3 <builtin>.min [function] [call site] 00017
3 os.path.join [function] [call site] 00018
3 os.path.dirname [function] [call site] 00019
3 os.path.join [function] [call site] 00020
3 <builtin>.open [function] [call site] 00021
3 parso.grammar.PythonGrammar.__init__ [function] [call site] 00023
4 <builtin>.super [function] [call site] 00024
3 _loaded_grammars.setdefault [function] [call site] 00025
2 grammar.parse [function] [call site] 00026
1 parso.python.diff.DiffParser.__init__ [function] [call site] 00027
1 parso.python.diff.DiffParser.update [function] [call site] 00028
2 LOG.debug [function] [call site] 00029
2 parso.python.diff.DiffParser._reset [function] [call site] 00030
3 parso.python.diff._NodesTree.__init__ [function] [call site] 00031
4 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00032
2 <builtin>.len [function] [call site] 00033
2 difflib.SequenceMatcher [function] [call site] 00034
2 sm.get_opcodes [function] [call site] 00035
2 <builtin>.len [function] [call site] 00036
2 LOG.debug [function] [call site] 00037
2 LOG.debug [function] [call site] 00038
2 parso.python.diff.DiffParser._copy_from_old_parser [function] [call site] 00039
3 parso.python.diff.DiffParser._get_old_line_stmt [function] [call site] 00040
4 parso.python.diff._ends_with_newline [function] [call site] 00041
5 parso.python.diff._skip_dedent_error_leaves [function] [call site] 00042
6 leaf.get_previous_leaf [function] [call site] 00043
5 leaf.token_type.lower [function] [call site] 00044
5 suffix.endswith [function] [call site] 00045
5 suffix.endswith [function] [call site] 00046
4 leaf.get_next_leaf [function] [call site] 00047
4 leaf.get_start_pos_of_prefix [function] [call site] 00048
3 parso.python.diff.DiffParser._parse [function] [call site] 00049
4 parso.python.diff.DiffParser._try_parse_part [function] [call site] 00050
5 parso.python.diff.DiffParser._diff_tokenize [function] [call site] 00051
6 <builtin>.len [function] [call site] 00052
6 <builtin>.len [function] [call site] 00053
6 <builtin>.next [function] [call site] 00054
6 <builtin>.len [function] [call site] 00056
6 <builtin>.repr [function] [call site] 00057
6 <builtin>.len [function] [call site] 00058
6 typing.NamedTuple.__init__ [function] [call site] 00059
6 <builtin>.len [function] [call site] 00060
6 parso.python.diff._suite_or_file_input_is_valid [function] [call site] 00061
7 parso.python.diff._flows_finished [function] [call site] 00062
7 <builtin>.reversed [function] [call site] 00063
7 <builtin>.len [function] [call site] 00064
6 typing.NamedTuple.__init__ [function] [call site] 00065
6 <builtin>.list [function] [call site] 00066
5 parso.python.parser.Parser.__init__ [function] [call site] 00067
6 <builtin>.super [function] [call site] 00068
5 parso.python.parser.Parser.parse [function] [call site] 00069
6 parso.python.parser.Parser._recovery_tokenize [function] [call site] 00070
6 <builtin>.super [function] [call site] 00072
4 parso.python.diff._NodesTree.add_parsed_nodes [function] [call site] 00073
5 parso.python.diff._NodesTree._remove_endmarker [function] [call site] 00074
6 prefix.rfind [function] [call site] 00075
6 prefix.rfind [function] [call site] 00076
6 <builtin>.max [function] [call site] 00077
5 parso.python.diff._NodesTree._update_insertion_node [function] [call site] 00078
6 <builtin>.list [function] [call site] 00079
6 <builtin>.reversed [function] [call site] 00080
5 node.add_tree_nodes [function] [call site] 00081
5 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00082
6 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00083
6 <builtin>.list [function] [call site] 00084
6 parso.python.diff._NodesTreeNode.add_tree_nodes [function] [call site] 00085
7 collections.namedtuple [function] [call site] 00086
6 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00087
6 parso.python.diff._func_or_class_has_suite [function] [call site] 00088
6 parso.python.diff._NodesTree._update_parsed_node_tos [function] [call site] 00089
4 LOG.debug [function] [call site] 00090
3 p_children.index [function] [call site] 00091
3 parso.python.diff._NodesTree.copy_nodes [function] [call site] 00092
4 parso.python.diff._get_indentation [function] [call site] 00093
4 <builtin>.list [function] [call site] 00094
4 parso.python.diff._NodesTree._update_insertion_node [function] [call site] 00095
4 parso.python.diff._NodesTree._copy_nodes [function] [call site] 00096
5 parso.python.diff._NodesTree._get_matching_indent_nodes [function] [call site] 00097
6 <builtin>.iter [function] [call site] 00098
6 <builtin>.next [function] [call site] 00099
6 <builtin>.next [function] [call site] 00100
6 parso.python.diff._get_indentation [function] [call site] 00101
6 parso.python.diff._get_indentation [function] [call site] 00102
5 <builtin>.list [function] [call site] 00103
5 parso.python.diff._get_last_line [function] [call site] 00104
6 node_or_leaf.get_last_leaf [function] [call site] 00105
6 parso.python.diff._ends_with_newline [function] [call site] 00106
6 last_leaf.get_next_leaf [function] [call site] 00107
5 parso.python.diff._func_or_class_has_suite [function] [call site] 00108
5 new_nodes.append [function] [call site] 00109
5 new_nodes.append [function] [call site] 00110
5 parso.python.diff._is_flow_node [function] [call site] 00111
5 new_nodes.pop [function] [call site] 00112
5 last_node.get_last_leaf [function] [call site] 00113
5 new_nodes.pop [function] [call site] 00114
5 <builtin>.len [function] [call site] 00115
5 new_nodes.pop [function] [call site] 00116
5 parso.python.diff._func_or_class_has_suite [function] [call site] 00117
5 parso.python.diff._get_suite_indentation [function] [call site] 00118
6 parso.python.diff._get_indentation [function] [call site] 00119
5 added_indents.append [function] [call site] 00120
5 parso.python.diff._get_indentation [function] [call site] 00121
5 parso.python.diff._NodesTreeNode.__init__ [function] [call site] 00122
5 parso.python.diff._NodesTree._copy_nodes [function] [call site] 00123
5 <builtin>.len [function] [call site] 00124
5 new_nodes.pop [function] [call site] 00125
5 tos.add_child_node [function] [call site] 00126
5 parso.python.diff._ends_with_newline [function] [call site] 00127
5 parso.utils.split_lines [function] [call site] 00128
6 typing.NamedTuple.string.splitlines [function] [call site] 00129
6 <builtin>.enumerate [function] [call site] 00130
6 merge.append [function] [call site] 00131
6 <builtin>.reversed [function] [call site] 00132
6 typing.NamedTuple.string.endswith [function] [call site] 00133
6 typing.NamedTuple.string.endswith [function] [call site] 00134
6 lst.append [function] [call site] 00135
5 tos.add_tree_nodes [function] [call site] 00137
4 <builtin>.list [function] [call site] 00138
3 LOG.debug [function] [call site] 00139
3 parso.python.diff.DiffParser._parse [function] [call site] 00140
2 parso.python.diff.DiffParser._parse [function] [call site] 00141
2 parso.python.diff.DiffParser._parse [function] [call site] 00142
2 parso.python.diff._NodesTree.close [function] [call site] 00143
3 parso.python.diff._NodesTreeNode.finish [function] [call site] 00144
4 parso.python.diff._get_next_leaf_if_indentation [function] [call site] 00145
5 parso.python.diff._is_indentation_error_leaf [function] [call site] 00146
5 leaf.get_next_leaf [function] [call site] 00147
4 parso.python.diff._update_positions [function] [call site] 00148
5 parso.python.diff._update_positions [function] [call site] 00149
4 node_child.finish [function] [call site] 00150
3 parso.python.diff._skip_dedent_error_leaves [function] [call site] 00151
3 <builtin>.list [function] [call site] 00152
3 parso.utils.split_lines [function] [call site] 00153
3 <builtin>.len [function] [call site] 00154
3 <builtin>.len [function] [call site] 00155
3 <builtin>.len [function] [call site] 00156
3 <builtin>.len [function] [call site] 00157
3 <builtin>.len [function] [call site] 00158
3 <builtin>.tuple [function] [call site] 00159
3 parso.tree.Leaf.__init__ [function] [call site] 00160
2 parso.python.diff._assert_valid_graph [function] [call site] 00161
3 node.get_previous_leaf [function] [call site] 00162
3 parso.python.diff._get_previous_leaf_if_indentation [function] [call site] 00163
4 parso.python.diff._is_indentation_error_leaf [function] [call site] 00164
4 leaf.get_previous_leaf [function] [call site] 00165
3 parso.utils.split_lines [function] [call site] 00166
3 <builtin>.len [function] [call site] 00167
3 <builtin>.len [function] [call site] 00168
3 <builtin>.len [function] [call site] 00169
3 content.startswith [function] [call site] 00170
3 node.get_start_pos_of_prefix [function] [call site] 00171
3 parso.python.diff._assert_valid_graph [function] [call site] 00172
2 parso.python.parser.Parser.__init__ [function] [call site] 00173
2 parso.python.parser.Parser.parse [function] [call site] 00174
2 parso.python.diff._assert_nodes_are_equal [function] [call site] 00175
3 <builtin>.hasattr [function] [call site] 00176
3 <builtin>.zip [function] [call site] 00177
3 parso.python.diff._assert_nodes_are_equal [function] [call site] 00178
3 <builtin>.len [function] [call site] 00179
3 <builtin>.len [function] [call site] 00180
3 <builtin>.repr [function] [call site] 00181
3 <builtin>.repr [function] [call site] 00182
2 parso.python.diff._get_debug_error_message [function] [call site] 00183
3 module.get_code [function] [call site] 00184
3 parso.utils.split_lines [function] [call site] 00185
3 difflib.unified_diff [function] [call site] 00186
3 difflib.unified_diff [function] [call site] 00187
2 <builtin>.print [function] [call site] 00188
2 LOG.debug [function] [call site] 00189