summaryrefslogtreecommitdiff
path: root/Modules/_xxtestfuzz
Commit message (Collapse)AuthorAgeFilesLines
* bpo-29505: Fuzz json module, enforce size limit on int(x) fuzz (GH-13991)Miss Islington (bot)2019-06-1110-1/+171
| | | | | | | | * bpo-29505: Enable fuzz testing of the json module, enforce size limit on int(x) fuzz and json input size to avoid timeouts. Contributed by by Ammar Askar for Google. (cherry picked from commit a6e190e94b47324f14e22a09200c68b722d55699) Co-authored-by: Ammar Askar <aaskar@google.com>
* bpo-29505: Fix interpreter in fuzzing targets to be relocatable (GH-13907)Miss Islington (bot)2019-06-081-0/+8
| | | | | (cherry picked from commit a15a7bcaea54e1845ab2abe27e6f583294cd715b) Co-authored-by: Ammar Askar <ammar@ammaraskar.com>
* Avoid UB in test selection macro. (#3407)Devin Jeanpierre2017-09-061-5/+3
| | | | | This fixes the gcc "warning: this use of "defined" may not be portable [-Wexpansion-to-defined]" See discussion in http://bugs.python.org/issue29505
* bpo-29505: Add fuzz tests for float(str), int(str), unicode(str) (#2878)Devin Jeanpierre2017-09-064-0/+222
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.