]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-29505: Add fuzz tests for float(str), int(str), unicode(str) (#2878)
authorDevin Jeanpierre <jeanpierreda@gmail.com>
Wed, 6 Sep 2017 18:15:35 +0000 (11:15 -0700)
committerGregory P. Smith <greg@krypto.org>
Wed, 6 Sep 2017 18:15:35 +0000 (11:15 -0700)
commitc5bace2bf7874cf47ef56e1d8d19f79ad892eef5
tree30154359cfc75d55b8164619bcfaaaa65d2378ec
parent5fcd5e64eec9ed67613b8fe7356fb8288151ceba
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.
Lib/test/test_xxtestfuzz.py [new file with mode: 0644]
Misc/NEWS.d/next/Security/2017-08-23-17-02-55.bpo-29505.BL6Yt8.rst [new file with mode: 0644]
Modules/_xxtestfuzz/README.rst [new file with mode: 0644]
Modules/_xxtestfuzz/_xxtestfuzz.c [new file with mode: 0644]
Modules/_xxtestfuzz/fuzz_tests.txt [new file with mode: 0644]
Modules/_xxtestfuzz/fuzzer.c [new file with mode: 0644]
setup.py