cpython/Lib
Devin Jeanpierre c5bace2bf7 bpo-29505: Add fuzz tests for float(str), int(str), unicode(str) (#2878)
Add basic fuzz tests for a few common builtin functions.

This is an easy place to start, and these functions are probably safe.
We'll want to add more fuzz tests later.  Lets bootstrap using these.

While the fuzz tests are included in CPython and compiled / tested on a
very basic level inside CPython itself, the actual fuzzing happens as
part of oss-fuzz (https://github.com/google/oss-fuzz). The reason to
include the tests in CPython is to make sure that they're maintained
as part of the CPython project, especially when (as some eventually
will) they use internal implementation details in the test.

(This will be necessary sometimes because e.g. the fuzz test should
never enter Python's interpreter loop, whereas some APIs only expose
themselves publicly as Python functions.)

This particular set of changes is part of testing Python's builtins,
tracked internally at Google by b/37562550.

The _xxtestfuzz module that this change adds need not be shipped with binary distributions of Python.
2017-09-06 11:15:35 -07:00
..
asyncio bpo-31350: Optimize get_event_loop and _get_running_loop (#3347) 2017-09-05 20:36:59 -04:00
collections bpo-30662: fixed OrderedDict.__init__ docstring re PEP 468 (#2179) 2017-09-05 16:23:49 -07:00
concurrent Fix a c.f.as_completed() refleak previously introduced in bpo-27144 (#3270) 2017-09-03 15:09:23 +02:00
ctypes Removed noop branch from ctypes code (#3234) 2017-08-30 13:43:14 +02:00
curses Issue #13051: Fixed recursion errors in large or resized curses.textpad.Textbox. 2016-12-28 10:16:06 +02:00
dbm bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
distutils bpo-31340: Change to building with MSVC v141 (included with Visual Studio 2017) (#3311) 2017-09-06 10:01:38 -07:00
email bpo-30532: Fix whitespace folding in certain cases 2017-06-26 17:41:35 -04:00
encodings Revert #27959: ImportError within an encoding module should also skip the encoding 2016-09-09 08:56:37 -07:00
ensurepip Merge - upgrade pip/setuptools 2016-11-15 21:18:40 -05:00
html bpo-30629: Remove second call of str.lower() in html.parser.parse_endtag. (#2099) 2017-06-16 21:15:25 -04:00
http bpo-28707: Add the directory parameter to http.server.SimpleHTTPRequestHandler and http.server module (#1776) 2017-05-24 00:29:06 -07:00
idlelib bpo-31051: Rearrange IDLE condigdialog GenPage into Window, Editor, and Help sections. (#3239) 2017-08-30 00:59:11 -04:00
importlib bpo-31070: Fix a race condition in importlib _get_module_lock(). (#3033) 2017-08-09 14:29:12 +03:00
json Fix trivial typo in json module docstring (GH-2274) 2017-06-20 13:07:20 -07:00
lib2to3 bpo-29783: Replace codecs.open() with io.open() (#599) 2017-06-16 08:59:01 +02:00
logging bpo-31080: Allowed logging.config.fileConfig() to accept both args and kwargs. (GH-2979) 2017-08-02 21:44:28 +01:00
msilib #27364: fix "incorrect" uses of escape character in the stdlib. 2016-09-08 13:59:53 -04:00
multiprocessing [Trivial] Remove now redundant assert (#3245) 2017-08-30 16:57:12 +02:00
pydoc_data Regenerated pydoc topics for 3.5.3rc1. 2017-01-01 22:09:56 -08:00
site-packages Issue #29283: Delete accidentally added Lib/site-packages/README 2017-01-30 13:55:49 +03:00
sqlite3 bpo-26187: Test that set_trace_callback() is not called multiple times (GH-461) 2017-04-09 12:11:59 +03:00
test bpo-29505: Add fuzz tests for float(str), int(str), unicode(str) (#2878) 2017-09-06 11:15:35 -07:00
tkinter ttk: fix LabeledScale and OptionMenu destroy() method (#3025) 2017-08-08 19:41:21 +02:00
turtledemo bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
unittest Spelling fixes (#2902) 2017-08-03 09:00:59 +03:00
urllib remove a redundant lower in urllib.parse.urlsplit (#3008) 2017-09-02 21:51:39 -07:00
venv bpo-27425: Be more explicit in .gitattributes (GH-840) 2017-06-10 14:58:42 -05:00
wsgiref Issue #26721: Change StreamRequestHandler.wfile to BufferedIOBase 2016-06-29 10:12:22 +00:00
xml bpo-30264: ExpatParser closes the source on error (#1451) 2017-05-05 09:46:47 +02:00
xmlrpc bpo-31247: xmlrpc.server: break reference cycle (#3166) 2017-08-21 18:12:58 +02:00
__future__.py
__phello__.foo.py
_bootlocale.py Issue #28596: The preferred encoding is UTF-8 on Android. 2016-12-17 09:19:11 +01:00
_collections_abc.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
_compat_pickle.py Issue #15767: Add ModuleNotFoundError. 2016-09-07 15:42:32 -07:00
_compression.py
_dummy_thread.py bpo-6532: Make the thread id an unsigned integer. (#781) 2017-03-23 14:48:39 +01:00
_markupbase.py
_osx_support.py Fix misplaced positional argument in OS X support library (#1134) 2017-04-14 15:28:55 +03:00
_pydecimal.py bpo-29776: Use decorator syntax for properties. (#585) 2017-03-19 08:40:32 +02:00
_pyio.py Revert "bpo-17852: Maintain a list of BufferedWriter objects. Flush them on exit. (#1908)" (#3337) 2017-09-04 22:13:17 -07:00
_sitebuiltins.py
_strptime.py
_threading_local.py
_weakrefset.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
abc.py bpo-30463: Add an empty __slots__ to abc.ABC. 2017-06-06 22:34:57 +03:00
aifc.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
antigravity.py Issue #28181: Get antigravity over HTTPS. Patch by Kaartic Sivaraam. 2016-09-16 13:48:10 +02:00
argparse.py Issue #29290: Merge 3.5. 2017-01-22 14:39:20 +08:00
ast.py bpo-29637: clean docstring only if not None (GH-267) 2017-02-24 15:44:19 +09:00
asynchat.py Issue #25002: Back out asyncore/asynchat deprecation. 2016-10-25 18:42:51 -07:00
asyncore.py bpo-30980: Fix double close in asyncore.file_wrapper (#2789) 2017-07-24 23:18:06 +02:00
base64.py Add Python version since deprecation in base64 methods. (#33) 2017-03-02 17:21:26 +03:00
bdb.py bpo-30211: bdb: add docstrings (#1350) 2017-05-16 18:28:02 -04:00
binhex.py
bisect.py Issue #28792: Remove aliases from _bisect 2016-11-24 23:31:59 +01:00
bz2.py Issue #28225: bz2 module now supports pathlib 2016-10-02 20:07:06 +03:00
calendar.py bpo-30095: Make CSS classes used by calendar.HTMLCalendar customizable (GH-1439) 2017-06-06 11:35:59 +02:00
cgi.py bpo-29979: Rewrite cgi.parse_multipart to make it consistent with FieldStorage (#991) 2017-05-08 05:08:34 -07:00
cgitb.py
chunk.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
cmd.py
code.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
codecs.py bpo-29783: Replace codecs.open() with io.open() (#599) 2017-06-16 08:59:01 +02:00
codeop.py
colorsys.py
compileall.py Issue #28485: Merge single-threading fix from 3.5 into 3.6 2016-11-05 01:35:25 +00:00
configparser.py bpo-23835: Restore legacy defaults= behavior for RawConfigParser (#3191) 2017-08-24 09:43:53 -07:00
contextlib.py bpo-30266: support "= None" pattern in AbstractContextManager (#1448) 2017-06-09 08:21:47 -07:00
copy.py
copyreg.py bpo-31107: Fix copyreg mangled slot names calculation. (#2989) 2017-08-04 11:45:00 +03:00
cProfile.py
crypt.py
csv.py Issue #29405: Make total calculation in _guess_delimiter more accurate. 2017-02-06 10:50:09 +08:00
datetime.py Closes issue bpo-5288: Allow tzinfo objects with sub-minute offsets. (#2896) 2017-07-31 10:26:50 -04:00
decimal.py
difflib.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
dis.py bpo-31183: dis now handles coroutines & async generators (GH-3077) 2017-08-18 12:29:21 +10:00
doctest.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
dummy_threading.py
enum.py Spelling fixes (#2902) 2017-08-03 09:00:59 +03:00
filecmp.py
fileinput.py bpo-31281: Fix pathlib.Path incompatibility in fileinput (gh-3208) 2017-09-04 13:37:24 -04:00
fnmatch.py Issue #22493: Inline flags now should be used only at the start of the 2016-09-11 12:50:02 +03:00
formatter.py
fractions.py Issue #27832: Make _normalize parameter to Fraction.__init__ keyword-only. 2016-08-23 16:16:52 +01:00
ftplib.py bpo-30119: fix ftplib.FTP.putline() to throw an error for a illegal command (#1214) 2017-07-22 19:20:22 +02:00
functools.py Conceptually, roots is a set. Also searching it as a set is a tiny bit faster (#3338) 2017-09-05 09:40:44 -07:00
genericpath.py Issue #26027, #27524: Add PEP 519/__fspath__() support to os and 2016-08-26 14:44:48 -07:00
getopt.py
getpass.py getpass: update docstrings (#49) 2017-02-12 23:10:48 +01:00
gettext.py bpo-29755: Fixed the lgettext() family of functions in the gettext module. (#2266) 2017-06-20 17:13:29 +03:00
glob.py Issue #27998: Removed workarounds for supporting bytes paths on Windows in 2016-10-05 23:17:10 +03:00
gzip.py Issue #28227: gzip now supports pathlib 2016-10-02 13:47:58 +03:00
hashlib.py Issue #16113: Add SHA-3 and SHAKE support to hashlib module. 2016-09-07 11:58:24 +02:00
heapq.py Improve clarity (and small speed-up) by using tuple unpacking (#3289) 2017-09-04 11:47:58 -07:00
hmac.py Use sequence repetition instead of bytes constructor with integer argument. 2016-09-11 14:41:02 +03:00
imaplib.py bpo-30329: Catch Windows error 10022 on shutdown() (#1538) 2017-05-15 17:33:45 +02:00
imghdr.py Issue #28228: imghdr now supports pathlib 2016-10-01 05:01:54 +03:00
imp.py bpo-30645: don't append to an inner loop path in imp.load_package() (GH-2268) 2017-06-23 10:35:03 -07:00
inspect.py bpo-25532: Protect against infinite loops in inspect.unwrap() (#1717) 2017-05-23 13:27:52 +10:00
io.py Issue #1602: Windows console doesn't input or print Unicode (PEP 528) 2016-08-30 21:22:36 -07:00
ipaddress.py bpo-29931 fix __lt__ check in ipaddress.ip_interface for both v4 and v6. (#879) 2017-04-01 09:09:53 +03:00
keyword.py
linecache.py
locale.py bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
lzma.py Issue #28229: lzma module now supports pathlib 2016-10-04 20:41:20 +03:00
macpath.py bpo-9850: Deprecate the macpath module (#1540) 2017-05-15 11:01:21 +02:00
mailbox.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
mailcap.py #14977: Make mailcap respect the order of the lines in the mailcap file. 2016-09-09 20:04:23 -04:00
mimetypes.py bpo-30824: Add mimetype for .json (#3048) 2017-08-14 14:39:45 -04:00
modulefinder.py Remove unused imports. 2016-12-16 20:00:15 +02:00
netrc.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
nntplib.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
ntpath.py Issue #29197: Removed deprecated function ntpath.splitunc(). 2017-01-13 20:55:05 +02:00
nturl2path.py bpo-29836: Remove nturl2path from test_sundry and amend the module docstring (GH-694) 2017-03-17 11:16:20 -07:00
numbers.py
opcode.py Issue #26110: Add LOAD_METHOD/CALL_METHOD opcodes. 2016-12-13 19:03:51 -05:00
operator.py
optparse.py Merge doc and comment fixes from 3.5 2016-04-19 23:23:16 +00:00
os.py bpo-30441: Fix bug when modifying os.environ while iterating over it (#2409) 2017-07-01 20:34:45 +03:00
pathlib.py bpo-30897: Add is_mount() to pathlib.Path (#2669) 2017-08-01 15:35:45 -07:00
pdb.py Issue #20766: Merge with 3.5. 2016-10-12 20:16:05 +02:00
pickle.py bpo-29762: More use "raise from None". (#569) 2017-04-05 09:37:24 +03:00
pickletools.py bpo-30174: Remove duplicate definition from pickletools (#1301) 2017-04-27 19:05:26 +03:00
pipes.py
pkgutil.py bpo-24744: Raises error in pkgutil.walk_packages if path is str (#1926) 2017-06-13 13:11:14 -04:00
platform.py bpo-27593: Get SCM build info from git instead of hg. (#446) 2017-03-04 00:19:55 -05:00
plistlib.py bpo-29196: Removed old-deprecated classes Plist, Dict and _InternalDict (#488) 2017-05-15 13:21:31 +03:00
poplib.py bpo-30329: Catch Windows error 10022 on shutdown() (#1538) 2017-05-15 17:33:45 +02:00
posixpath.py Issue #26027, #27524: Add PEP 519/__fspath__() support to os and 2016-08-26 14:44:48 -07:00
pprint.py Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
profile.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
pstats.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
pty.py
py_compile.py
pyclbr.py bpo-6691: Pyclbr now reports nested classes and functions. (#2503) 2017-07-03 21:31:25 -04:00
pydoc.py bpo-31238: pydoc ServerThread.stop() now joins itself (#3151) 2017-08-21 23:24:40 +02:00
queue.py
quopri.py
random.py random_triangular: sqrt() is more accurate than **0.5 (#3317) 2017-09-04 16:51:06 -07:00
re.py bpo-30215: Make re.compile() locale agnostic. (#1361) 2017-05-05 08:53:40 +03:00
reprlib.py Issue #26634: recursive_repr() now sets __qualname__ of wrapper. 2016-04-26 09:30:44 +03:00
rlcompleter.py
runpy.py [backport to 3.5] - issue26896 - Disambiguate uses of "importer" with "finder". 2016-09-07 00:52:20 -07:00
sched.py Issue #5830: Remove old comment. Add empty slots. 2016-10-24 07:31:55 -07:00
secrets.py Issue #29061: secrets.randbelow() would hang with a negative input 2016-12-29 22:54:25 -07:00
selectors.py bpo-30624 remaining bare except (#2108) 2017-06-12 14:43:40 +02:00
shelve.py bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
shlex.py Fixed #29132: Updated shlex to work better with punctuation chars in POSIX mode. 2017-01-15 10:06:52 +00:00
shutil.py bpo-30218: support path-like objects in shutil.unpack_archive() (GH-1367) 2017-05-05 14:27:12 -07:00
signal.py
site.py bpo-30804: fix macOS build with framework enabled. (#2516) 2017-06-30 19:38:02 +02:00
smtpd.py Issue #27110: Add smtpd.SMTPChannel to __all__, by Jacek KoƂodziej 2016-06-06 02:03:11 +00:00
smtplib.py bpo-30394: Fix a socket leak in smtplib.SMTP.__init__() (#1700) 2017-05-24 13:14:50 +08:00
sndhdr.py
socket.py Issue #26384: Merge from 3.5 2016-09-17 23:23:13 +03:00
socketserver.py bpo-31151: Add socketserver.ForkingMixIn.server_close() (#3057) 2017-08-10 15:28:16 +02:00
sre_compile.py bpo-30299: Display a bytecode when compile a regex in debug mode. (#1491) 2017-05-14 09:05:13 +03:00
sre_constants.py bpo-30398: Add a docstring for re.error. (#1647) 2017-05-27 16:12:48 +03:00
sre_parse.py bpo-30605: Fix compiling binary regexs with BytesWarnings enabled. (#2016) 2017-06-10 08:01:16 +03:00
ssl.py Issue #28085: Add PROTOCOL_TLS_CLIENT and PROTOCOL_TLS_SERVER for SSLContext 2016-09-12 00:01:11 +02:00
stat.py
statistics.py bpo-29919: Remove unused imports found by pyflakes (#137) 2017-03-27 16:05:26 +02:00
string.py bpo-1198569: Allow string.Template braced pattern to be different (#3288) 2017-09-04 16:32:10 -04:00
stringprep.py
struct.py
subprocess.py bpo-31178: Avoid concatenating bytes with str in subprocess error (#3066) 2017-09-05 23:41:30 -07:00
sunau.py
symbol.py Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations. 2016-09-08 20:50:03 -07:00
symtable.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
sysconfig.py remove IRIX support (closes bpo-31341) (#3310) 2017-09-04 16:36:05 -07:00
tabnanny.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
tarfile.py Remove two legacy constants which hopefully have no consumers (#1087) 2017-04-11 22:41:42 -04:00
telnetlib.py
tempfile.py bpo-30030: Revert f50354ad (tempfile) (#1187) 2017-04-19 22:59:51 +02:00
textwrap.py bpo-30620: Remove dead lines from textwrap.dedent (GH-2064) 2017-06-15 19:19:43 -07:00
this.py
threading.py bpo-18966: non-daemonic threads created by a multiprocessing.Process should be joined on exit (#3111) 2017-08-16 20:53:28 +02:00
timeit.py bpo-29661: fix contradiction in timeit.Timer.autorange's docstring (GH-331) 2017-02-28 11:06:07 +08:00
token.py bpo-25324: copy tok_name before changing it (#1608) 2017-05-31 16:00:21 +02:00
tokenize.py bpo-25324: copy tok_name before changing it (#1608) 2017-05-31 16:00:21 +02:00
trace.py bpo-30166: Import command-line parsing modules only when needed. (#1293) 2017-05-04 08:17:47 +03:00
traceback.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
tracemalloc.py bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
tty.py
turtle.py bpo-30296 Remove unnecessary tuples, lists, sets, and dicts (#1489) 2017-05-18 07:35:54 -07:00
types.py bpo:29950: Rename SlotWrapperType to WrapperDescriptorType (GH-926) 2017-04-25 21:26:36 +03:00
typing.py bpo-28556: Updates to typing module (#2076) 2017-06-10 12:57:56 -07:00
uu.py bpo-30103: Allow Uuencode in Python using backtick as zero instead of space (#1326) 2017-05-03 11:16:21 +08:00
uuid.py remove IRIX support (closes bpo-31341) (#3310) 2017-09-04 16:36:05 -07:00
warnings.py Simplify code in warnings modules (#1935) 2017-06-04 11:34:16 -04:00
wave.py
weakref.py bpo-30144: Import collections ABC from collections.abc rather than collections. (#1263) 2017-04-24 09:05:00 +03:00
webbrowser.py bpo-29645: Speed up importing the webbrowser module. (#484) 2017-03-08 17:15:54 +02:00
xdrlib.py
zipapp.py bpo-31072: Rename the new filter argument for zipapp.create_archive. (#3049) 2017-08-26 18:04:12 +01:00
zipfile.py Revert bpo-26293 for zipfile breakage. See also bpo-29094. (#1484) 2017-05-06 14:46:01 +03:00