Fuzz introspector: fuzz_datetime
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
35 12 arrow.parser.DateTimeParser.parse_iso call site: 00012 arrow.parser.DateTimeParser._parse_multiformat
18 82 arrow.parser.DateTimeParser._build_datetime call site: 00082 arrow.util.next_weekday
16 53 arrow.parser.DateTimeParser._parse_token call site: 00053 arrow.parser.TzinfoParser.parse
11 70 arrow.parser.TzinfoParser.parse call site: 00070 arrow.parser.DateTimeParser._build_datetime
8 108 arrow.parser.DateTimeParser._build_datetime call site: 00108 datetime.timedelta
4 4 ...fuzz_datetime.TestOneInput call site: 00004 arrow.locales.get_locale
4 48 arrow.parser.DateTimeParser._parse_token call site: 00048 .int
2 9 ...fuzz_datetime.TestOneInput call site: 00009 datetime_string.strip
2 103 arrow.parser.DateTimeParser._build_datetime call site: 00103 parts.get
1 2 ...fuzz_datetime.TestOneInput call site: 00002 fdp.ConsumeIntInRange
1 101 arrow.util.next_weekday call site: 00101 dateutil.rrule.rrule
1 106 arrow.parser.DateTimeParser._build_datetime call site: 00106 parts.get

Fuzzer calltree

0 ...fuzz_datetime.TestOneInput [function] [call site] 00000
1 atheris.FuzzedDataProvider [function] [call site] 00001
1 fdp.ConsumeUnicodeNoSurrogates [function] [call site] 00002
1 fdp.ConsumeIntInRange [function] [call site] 00003
1 arrow.parser.DateTimeParser.__init__ [function] [call site] 00004
2 arrow.locales.get_locale [function] [call site] 00005
3 name.lower [function] [call site] 00006
3 _locale_map.get [function] [call site] 00007
2 functools.lru_cache [function] [call site] 00008
1 arrow.parser.DateTimeParser.parse_iso [function] [call site] 00009
2 datetime_string.strip [function] [call site] 00010
2 datetime_string.count [function] [call site] 00012
2 datetime_string.split [function] [call site] 00013
2 datetime_string.split [function] [call site] 00014
2 time_components.groups [function] [call site] 00016
2 <builtin>.len [function] [call site] 00017
2 arrow.parser.DateTimeParser._parse_multiformat [function] [call site] 00018
3 arrow.parser.DateTimeParser.parse [function] [call site] 00019
4 <builtin>.isinstance [function] [call site] 00021
4 arrow.parser.DateTimeParser._parse_multiformat [function] [call site] 00022
4 arrow.parser.DateTimeParser._generate_pattern_re [function] [call site] 00023
5 re.escape [function] [call site] 00024
5 re.findall [function] [call site] 00027
5 typing.cast [function] [call site] 00029
5 tokens.append [function] [call site] 00030
5 <builtin>.len [function] [call site] 00033
5 fmt_pattern.split [function] [call site] 00036
5 <builtin>.len [function] [call site] 00037
5 <builtin>.range [function] [call site] 00038
5 <builtin>.len [function] [call site] 00039
5 re.compile [function] [call site] 00040
4 fmt_pattern_re.search [function] [call site] 00041
4 match.group [function] [call site] 00042
4 match.group [function] [call site] 00043
4 match.group [function] [call site] 00044
4 match.group [function] [call site] 00045
4 match.group [function] [call site] 00046
4 arrow.parser.DateTimeParser._parse_token [function] [call site] 00047
5 <builtin>.int [function] [call site] 00048
5 <builtin>.int [function] [call site] 00049
5 value.lower [function] [call site] 00050
5 <builtin>.int [function] [call site] 00051
5 <builtin>.int [function] [call site] 00052
5 <builtin>.int [function] [call site] 00053
5 <builtin>.int [function] [call site] 00054
5 value.lower [function] [call site] 00056
5 value.lower [function] [call site] 00058
5 token.upper [function] [call site] 00059
5 <builtin>.int [function] [call site] 00060
5 <builtin>.int [function] [call site] 00061
5 <builtin>.int [function] [call site] 00062
5 value.ljust [function] [call site] 00063
5 <builtin>.int [function] [call site] 00064
5 <builtin>.int [function] [call site] 00065
5 <builtin>.int [function] [call site] 00066
5 <builtin>.float [function] [call site] 00067
5 <builtin>.int [function] [call site] 00068
5 arrow.parser.TzinfoParser.parse [function] [call site] 00069
6 dateutil.tz.tzlocal [function] [call site] 00070
6 dateutil.tz.tzutc [function] [call site] 00071
6 cls._TZINFO_RE.match [function] [call site] 00072
6 iso_match.groups [function] [call site] 00073
6 <builtin>.int [function] [call site] 00074
6 <builtin>.int [function] [call site] 00075
6 dateutil.tz.tzoffset [function] [call site] 00076
6 dateutil.tz.gettz [function] [call site] 00077
4 arrow.parser.DateTimeParser._build_datetime [function] [call site] 00078
5 parts.get [function] [call site] 00079
5 <builtin>.int [function] [call site] 00080
5 <builtin>.int [function] [call site] 00081
5 <builtin>.int [function] [call site] 00082
5 datetime.datetime.strptime [function] [call site] 00083
5 parts.get [function] [call site] 00084
5 dateutil.tz.tzutc [function] [call site] 00085
5 datetime.datetime.fromtimestamp [function] [call site] 00086
5 parts.get [function] [call site] 00087
5 datetime.datetime.fromtimestamp [function] [call site] 00088
5 arrow.util.normalize_timestamp [function] [call site] 00089
5 dateutil.tz.tzutc [function] [call site] 00090
5 parts.get [function] [call site] 00091
5 parts.get [function] [call site] 00092
5 parts.get [function] [call site] 00093
5 datetime.datetime.strptime [function] [call site] 00094
5 parts.get [function] [call site] 00095
5 parts.get [function] [call site] 00096
5 parts.get [function] [call site] 00097
5 parts.get [function] [call site] 00098
5 datetime.datetime [function] [call site] 00099
5 arrow.util.next_weekday [function] [call site] 00100
6 typing.cast [function] [call site] 00101
6 dateutil.rrule.rrule [function] [call site] 00102
5 parts.get [function] [call site] 00103
5 parts.get [function] [call site] 00104
5 parts.get [function] [call site] 00105
5 parts.get [function] [call site] 00106
5 parts.get [function] [call site] 00107
5 parts.get [function] [call site] 00108
5 datetime.timedelta [function] [call site] 00109
5 datetime.datetime [function] [call site] 00110
5 parts.get [function] [call site] 00111
5 parts.get [function] [call site] 00112
5 parts.get [function] [call site] 00113
5 parts.get [function] [call site] 00114
5 parts.get [function] [call site] 00115
5 parts.get [function] [call site] 00116