Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: nedbat/coveragepy
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: nedbat/coveragepy
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: nedbat/1497
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
  • 4 commits
  • 11 files changed
  • 2 contributors

Commits on Jan 27, 2023

  1. test: add fuzzing set up

    Signed-off-by: David Korczynski <[email protected]>
    DavidKorczynski authored and nedbat committed Jan 27, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    nedbat Ned Batchelder
    Copy the full SHA
    1704398 View commit details
  2. test(build): use atheris

    nedbat committed Jan 27, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    nedbat Ned Batchelder
    Copy the full SHA
    5f60a3f View commit details
  3. chore: make upgrade

    nedbat committed Jan 27, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    nedbat Ned Batchelder
    Copy the full SHA
    5069f43 View commit details
  4. test: fix the test name

    nedbat committed Jan 27, 2023

    Verified

    This commit was signed with the committer’s verified signature.
    nedbat Ned Batchelder
    Copy the full SHA
    42de9a4 View commit details
6 changes: 3 additions & 3 deletions doc/requirements.pip
Original file line number Diff line number Diff line change
@@ -237,9 +237,9 @@ requests==2.28.2 \
# via
# scriv
# sphinx
scriv==1.1.0 \
--hash=sha256:1064101623e318d906d91f7e1405c97af414c67f0c7da8ee4d08eaa523b735eb \
--hash=sha256:f2670624b2c44cdf34224c8b032b71a00a41b78e9f587140da6dd0b010e66b75
scriv==1.2.0 \
--hash=sha256:26b65a903da7d9aefc712a0d4150b8638302b4758bd428bbd773dd918c61c621 \
--hash=sha256:bb61c30fea73158a4d18c28bbb57821c308245683efb0d897bd45e4a7856b472
# via -r doc/requirements.in
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
77 changes: 49 additions & 28 deletions requirements/dev.pip
Original file line number Diff line number Diff line change
@@ -4,28 +4,44 @@
#
# make upgrade
#
astroid==2.13.2 \
--hash=sha256:3bc7834720e1a24ca797fd785d77efb14f7a28ee8e635ef040b6e2d80ccb3303 \
--hash=sha256:8f6a8d40c4ad161d6fc419545ae4b2f275ed86d1c989c97825772120842ee0d2
astroid==2.13.3 \
--hash=sha256:14c1603c41cc61aae731cad1884a073c4645e26f126d13ac8346113c95577f3b \
--hash=sha256:6afc22718a48a689ca24a97981ad377ba7fb78c133f40335dfd16772f29bcfb1
# via pylint
atheris==2.2.2 \
--hash=sha256:0f02b03542266e438649e97ebbf5f96b94661cebca49a85420424cf65fdd1e87 \
--hash=sha256:13eb3154994fe6d1330d76d970eefe25b433af2d775e690992890b714d54b68e \
--hash=sha256:2087933ec91df9d3fb2ee22649c9811536515519d88bcc587d67018c3f0227f6 \
--hash=sha256:30f1255319fe87765639e451a178a4732b1185af43b5c9b842591f03830cf8ec \
--hash=sha256:33213d1f2e7f88d976c00dc3d19cc91e1304cd3d4dfba8f3ad5383093f7c55ab \
--hash=sha256:6606b443ddf3932333aa6854bad2c4a000a65f1faeb4f559e8ea376af255278b \
--hash=sha256:8e692836e6a8c41724c354a4f68fe35349bbc88af4708d835abef074ad5cb3f2 \
--hash=sha256:9fb4c5e6df23b6b3650e5cb8e4780d189ae34443a23339750742a0de92ea0101 \
--hash=sha256:ac727bcfc3345e2562722c517c836abe65ab8d7e4eaad1d792a6c85765868aff \
--hash=sha256:d06fdfe077d8188c5acdccb8d4cbb34a3fc2d6f84dbb7b807f523cc5f6e9b8a4 \
--hash=sha256:ebccc878ba5b958a42a97edcedff9ff46882b7c968e84cbf32632588457838f4 \
--hash=sha256:f305a4c95575e8372774d20c28f6345f21ab7d926da8ebdd1b92f92475f5ef0b \
--hash=sha256:fc0e4bf0830003bab8509147385184eae347a191e8f16e5e2d650aaafdcd5eb0 \
--hash=sha256:fd4d8050f548e2583ed4c4600211f341537f077bf54399f7b4f4d814b112f35b
# via -r requirements/pytest.pip
attrs==22.2.0 \
--hash=sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836 \
--hash=sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99
# via
# -r requirements/pytest.pip
# hypothesis
# pytest
bleach==5.0.1 \
--hash=sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a \
--hash=sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c
bleach==6.0.0 \
--hash=sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414 \
--hash=sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4
# via readme-renderer
build==0.10.0 \
--hash=sha256:af266720050a66c893a6096a2f410989eeac74ff9a68ba194b3f6473e8e26171 \
--hash=sha256:d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269
# via check-manifest
cachetools==5.2.1 \
--hash=sha256:5991bc0e08a1319bb618d3195ca5b6bc76646a49c21d55962977197b301cc1fe \
--hash=sha256:8462eebf3a6c15d25430a8c27c56ac61340b2ecf60c9ce57afc2b97e450e47da
cachetools==5.3.0 \
--hash=sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14 \
--hash=sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4
# via
# -r requirements/tox.pip
# tox
@@ -144,10 +160,6 @@ colorama==0.4.6 \
# -r requirements/pytest.pip
# -r requirements/tox.pip
# tox
commonmark==0.9.1 \
--hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \
--hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9
# via rich
dill==0.3.6 \
--hash=sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0 \
--hash=sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373
@@ -250,9 +262,9 @@ greenlet==2.0.1 \
--hash=sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f \
--hash=sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd
# via -r requirements/dev.in
hypothesis==6.62.1 \
--hash=sha256:7d1e2f9871e6509662da317adf9b4aabd6b38280fb6c7930aa4f574d2ed25150 \
--hash=sha256:d00a4a9c54b0b8b4570fe1abe42395807a973b4a507e6718309800e6f84e160d
hypothesis==6.65.1 \
--hash=sha256:4b7ae16db09151d17e5feebea07f4f84693cc1573c25e280bc92e619df24182b \
--hash=sha256:fb9757f4b556fc73c2eaa2c1b7d39d0184c75e4cb77dadaf6fa59373838bd629
# via -r requirements/pytest.pip
idna==3.4 \
--hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
@@ -342,10 +354,18 @@ libsass==0.22.0 \
--hash=sha256:89c5ce497fcf3aba1dd1b19aae93b99f68257e5f2026b731b00a872f13324c7f \
--hash=sha256:f1efc1b612299c88aec9e39d6ca0c266d360daa5b19d9430bdeaffffa86993f9
# via -r requirements/dev.in
markdown-it-py==2.1.0 \
--hash=sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27 \
--hash=sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da
# via rich
mccabe==0.7.0 \
--hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \
--hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e
# via pylint
mdurl==0.1.2 \
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
# via markdown-it-py
more-itertools==9.0.0 \
--hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \
--hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab
@@ -404,9 +424,9 @@ pylint==2.15.10 \
--hash=sha256:9df0d07e8948a1c3ffa3b6e2d7e6e63d9fb457c5da5b961ed63106594780cc7e \
--hash=sha256:b3dc5ef7d33858f297ac0d06cc73862f01e4f2e74025ec3eff347ce0bc60baf5
# via -r requirements/dev.in
pyproject-api==1.4.0 \
--hash=sha256:ac85c1f82e0291dbae5a7739dbb9a990e11ee4034c9b5599ea714f07a24ecd71 \
--hash=sha256:c34226297781efdd1ba4dfb74ce21076d9a8360e2125ea31803c1a02c76b2460
pyproject-api==1.5.0 \
--hash=sha256:0962df21f3e633b8ddb9567c011e6c1b3dcdfc31b7860c0ede7e24c5a1200fbe \
--hash=sha256:4c111277dfb96bcd562c6245428f27250b794bfe3e210b8714c4f893952f2c17
# via
# -r requirements/tox.pip
# tox
@@ -445,13 +465,13 @@ rfc3986==2.0.0 \
--hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \
--hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c
# via twine
rich==13.1.0 \
--hash=sha256:81c73a30b144bbcdedc13f4ea0b6ffd7fdc3b0d3cc259a9402309c8e4aee1964 \
--hash=sha256:f846bff22a43e8508aebf3f0f2410ce1c6f4cde429098bd58d91fde038c57299
rich==13.2.0 \
--hash=sha256:7c963f0d03819221e9ac561e1bc866e3f95a02248c1234daa48954e6d381c003 \
--hash=sha256:f1a00cdd3eebf999a15d85ec498bfe0b1a77efe9b34f645768a54132ef444ac5
# via twine
setuptools==66.0.0 \
--hash=sha256:a78d01d1e2c175c474884671dde039962c9d74c7223db7369771fcf6e29ceeab \
--hash=sha256:bd6eb2d6722568de6d14b87c44a96fac54b2a45ff5e940e639979a3d1792adb6
setuptools==66.1.1 \
--hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \
--hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8
# via check-manifest
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
@@ -480,9 +500,9 @@ tomlkit==0.11.6 \
--hash=sha256:07de26b0d8cfc18f871aec595fda24d95b08fef89d147caa861939f37230bf4b \
--hash=sha256:71b952e5721688937fb02cf9d354dbcf0785066149d2855e44531ebdd2b65d73
# via pylint
tox==4.3.4 \
--hash=sha256:84ee61b27dc983cb5b5d9ef93af10ce54a0e3992df73335fcdf3e8a3d3453a93 \
--hash=sha256:f5ac33b55de2f8764cff260661eb1257107a21c4819714b04f14669991aa7772
tox==4.4.2 \
--hash=sha256:258895ba5de919490c03ef97467c4c8c42954537dfd96ae72cc2fb63dac67cf0 \
--hash=sha256:3d8a8dd8a5afdc0d37af3e2b4959e427fe22530d0aa599baf0120e144b3defa3
# via
# -r requirements/tox.pip
# tox-gh
@@ -528,6 +548,7 @@ typing-extensions==4.4.0 \
# -r requirements/pytest.pip
# astroid
# importlib-metadata
# markdown-it-py
# platformdirs
# pylint
# rich
12 changes: 6 additions & 6 deletions requirements/kit.pip
Original file line number Diff line number Diff line change
@@ -8,9 +8,9 @@ auditwheel==5.3.0 \
--hash=sha256:1da1af54de5badd10149250c257a799be003fd976794716f17914e3d4b4a9fc9 \
--hash=sha256:d0be87b5b6fb767eacf1ea4afa3292574cb0f4473a3c0ba55bc9dff1d0b5a333
# via -r requirements/kit.in
bashlex==0.17 \
--hash=sha256:0ad04403637f64f7836da46c125f9023a2518be418595322309f20ddc1db6cc0 \
--hash=sha256:2aed062438e10ee89742bc80969793cd9ee4a3fab6cfb2365e43731aabd21010
bashlex==0.18 \
--hash=sha256:5bb03a01c6d5676338c36fd1028009c8ad07e7d61d8a1ce3f513b7fff52796ee \
--hash=sha256:91d73a23a3e51711919c1c899083890cdecffc91d8c088942725ac13e9dcfffa
# via cibuildwheel
bracex==2.3.post1 \
--hash=sha256:351b7f20d56fb9ea91f9b9e9e7664db466eb234188c175fd943f8f755c807e73 \
@@ -60,9 +60,9 @@ pyproject-hooks==1.0.0 \
--hash=sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8 \
--hash=sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5
# via build
setuptools==66.0.0 \
--hash=sha256:a78d01d1e2c175c474884671dde039962c9d74c7223db7369771fcf6e29ceeab \
--hash=sha256:bd6eb2d6722568de6d14b87c44a96fac54b2a45ff5e940e639979a3d1792adb6
setuptools==66.1.1 \
--hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \
--hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8
# via -r requirements/kit.in
tomli==2.0.1 \
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
6 changes: 3 additions & 3 deletions requirements/light-threads.pip
Original file line number Diff line number Diff line change
@@ -201,9 +201,9 @@ pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
# via cffi
setuptools==66.0.0 \
--hash=sha256:a78d01d1e2c175c474884671dde039962c9d74c7223db7369771fcf6e29ceeab \
--hash=sha256:bd6eb2d6722568de6d14b87c44a96fac54b2a45ff5e940e639979a3d1792adb6
setuptools==66.1.1 \
--hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \
--hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8
# via
# gevent
# zope-event
83 changes: 52 additions & 31 deletions requirements/lint.pip
Original file line number Diff line number Diff line change
@@ -8,10 +8,26 @@ alabaster==0.7.13 \
--hash=sha256:1ee19aca801bbabb5ba3f5f258e4422dfa86f82f3e9cefb0859b283cdd7f62a3 \
--hash=sha256:a27a4a084d5e690e16e01e03ad2b2e552c61a65469419b907243193de1a84ae2
# via sphinx
astroid==2.13.2 \
--hash=sha256:3bc7834720e1a24ca797fd785d77efb14f7a28ee8e635ef040b6e2d80ccb3303 \
--hash=sha256:8f6a8d40c4ad161d6fc419545ae4b2f275ed86d1c989c97825772120842ee0d2
astroid==2.13.3 \
--hash=sha256:14c1603c41cc61aae731cad1884a073c4645e26f126d13ac8346113c95577f3b \
--hash=sha256:6afc22718a48a689ca24a97981ad377ba7fb78c133f40335dfd16772f29bcfb1
# via pylint
atheris==2.2.2 \
--hash=sha256:0f02b03542266e438649e97ebbf5f96b94661cebca49a85420424cf65fdd1e87 \
--hash=sha256:13eb3154994fe6d1330d76d970eefe25b433af2d775e690992890b714d54b68e \
--hash=sha256:2087933ec91df9d3fb2ee22649c9811536515519d88bcc587d67018c3f0227f6 \
--hash=sha256:30f1255319fe87765639e451a178a4732b1185af43b5c9b842591f03830cf8ec \
--hash=sha256:33213d1f2e7f88d976c00dc3d19cc91e1304cd3d4dfba8f3ad5383093f7c55ab \
--hash=sha256:6606b443ddf3932333aa6854bad2c4a000a65f1faeb4f559e8ea376af255278b \
--hash=sha256:8e692836e6a8c41724c354a4f68fe35349bbc88af4708d835abef074ad5cb3f2 \
--hash=sha256:9fb4c5e6df23b6b3650e5cb8e4780d189ae34443a23339750742a0de92ea0101 \
--hash=sha256:ac727bcfc3345e2562722c517c836abe65ab8d7e4eaad1d792a6c85765868aff \
--hash=sha256:d06fdfe077d8188c5acdccb8d4cbb34a3fc2d6f84dbb7b807f523cc5f6e9b8a4 \
--hash=sha256:ebccc878ba5b958a42a97edcedff9ff46882b7c968e84cbf32632588457838f4 \
--hash=sha256:f305a4c95575e8372774d20c28f6345f21ab7d926da8ebdd1b92f92475f5ef0b \
--hash=sha256:fc0e4bf0830003bab8509147385184eae347a191e8f16e5e2d650aaafdcd5eb0 \
--hash=sha256:fd4d8050f548e2583ed4c4600211f341537f077bf54399f7b4f4d814b112f35b
# via -r requirements/pytest.pip
attrs==22.2.0 \
--hash=sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836 \
--hash=sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99
@@ -24,17 +40,17 @@ babel==2.11.0 \
--hash=sha256:1ad3eca1c885218f6dce2ab67291178944f810a10a9b5f3cb8382a5a232b64fe \
--hash=sha256:5ef4b3226b0180dedded4229651c8b0e1a3a6a2837d45a073272f313e4cf97f6
# via sphinx
bleach==5.0.1 \
--hash=sha256:085f7f33c15bd408dd9b17a4ad77c577db66d76203e5984b1bd59baeee948b2a \
--hash=sha256:0d03255c47eb9bd2f26aa9bb7f2107732e7e8fe195ca2f64709fcf3b0a4a085c
bleach==6.0.0 \
--hash=sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414 \
--hash=sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4
# via readme-renderer
build==0.10.0 \
--hash=sha256:af266720050a66c893a6096a2f410989eeac74ff9a68ba194b3f6473e8e26171 \
--hash=sha256:d5b71264afdb5951d6704482aac78de887c80691c52b88a9ad195983ca2c9269
# via check-manifest
cachetools==5.2.1 \
--hash=sha256:5991bc0e08a1319bb618d3195ca5b6bc76646a49c21d55962977197b301cc1fe \
--hash=sha256:8462eebf3a6c15d25430a8c27c56ac61340b2ecf60c9ce57afc2b97e450e47da
cachetools==5.3.0 \
--hash=sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14 \
--hash=sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4
# via
# -r requirements/tox.pip
# tox
@@ -166,10 +182,6 @@ colorama==0.4.6 \
# -r requirements/tox.pip
# sphinx-autobuild
# tox
commonmark==0.9.1 \
--hash=sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60 \
--hash=sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9
# via rich
dill==0.3.6 \
--hash=sha256:a07ffd2351b8c678dfc4a856a3005f8067aea51d6ba6c700796a4d9e280f39f0 \
--hash=sha256:e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373
@@ -275,9 +287,9 @@ greenlet==2.0.1 \
--hash=sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f \
--hash=sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd
# via -r requirements/dev.in
hypothesis==6.62.1 \
--hash=sha256:7d1e2f9871e6509662da317adf9b4aabd6b38280fb6c7930aa4f574d2ed25150 \
--hash=sha256:d00a4a9c54b0b8b4570fe1abe42395807a973b4a507e6718309800e6f84e160d
hypothesis==6.65.1 \
--hash=sha256:4b7ae16db09151d17e5feebea07f4f84693cc1573c25e280bc92e619df24182b \
--hash=sha256:fb9757f4b556fc73c2eaa2c1b7d39d0184c75e4cb77dadaf6fa59373838bd629
# via -r requirements/pytest.pip
idna==3.4 \
--hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
@@ -384,6 +396,10 @@ livereload==2.6.3 \
--hash=sha256:776f2f865e59fde56490a56bcc6773b6917366bce0c267c60ee8aaf1a0959869 \
--hash=sha256:ad4ac6f53b2d62bb6ce1a5e6e96f1f00976a32348afedcb4b6d68df2a1d346e4
# via sphinx-autobuild
markdown-it-py==2.1.0 \
--hash=sha256:93de681e5c021a432c63147656fe21790bc01231e0cd2da73626f1aa3ac0fe27 \
--hash=sha256:cf7e59fed14b5ae17c0006eff14a2d9a00ed5f3a846148153899a0224e2c07da
# via rich
markupsafe==2.1.2 \
--hash=sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed \
--hash=sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc \
@@ -440,6 +456,10 @@ mccabe==0.7.0 \
--hash=sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325 \
--hash=sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e
# via pylint
mdurl==0.1.2 \
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
# via markdown-it-py
more-itertools==9.0.0 \
--hash=sha256:250e83d7e81d0c87ca6bd942e6aeab8cc9daa6096d12c5308f3f92fa5e5c1f41 \
--hash=sha256:5a6257e40878ef0520b1803990e3e22303a41b5714006c32a3fd8304b26ea1ab
@@ -508,9 +528,9 @@ pylint==2.15.10 \
--hash=sha256:9df0d07e8948a1c3ffa3b6e2d7e6e63d9fb457c5da5b961ed63106594780cc7e \
--hash=sha256:b3dc5ef7d33858f297ac0d06cc73862f01e4f2e74025ec3eff347ce0bc60baf5
# via -r requirements/dev.in
pyproject-api==1.4.0 \
--hash=sha256:ac85c1f82e0291dbae5a7739dbb9a990e11ee4034c9b5599ea714f07a24ecd71 \
--hash=sha256:c34226297781efdd1ba4dfb74ce21076d9a8360e2125ea31803c1a02c76b2460
pyproject-api==1.5.0 \
--hash=sha256:0962df21f3e633b8ddb9567c011e6c1b3dcdfc31b7860c0ede7e24c5a1200fbe \
--hash=sha256:4c111277dfb96bcd562c6245428f27250b794bfe3e210b8714c4f893952f2c17
# via
# -r requirements/tox.pip
# tox
@@ -555,17 +575,17 @@ rfc3986==2.0.0 \
--hash=sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd \
--hash=sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c
# via twine
rich==13.1.0 \
--hash=sha256:81c73a30b144bbcdedc13f4ea0b6ffd7fdc3b0d3cc259a9402309c8e4aee1964 \
--hash=sha256:f846bff22a43e8508aebf3f0f2410ce1c6f4cde429098bd58d91fde038c57299
rich==13.2.0 \
--hash=sha256:7c963f0d03819221e9ac561e1bc866e3f95a02248c1234daa48954e6d381c003 \
--hash=sha256:f1a00cdd3eebf999a15d85ec498bfe0b1a77efe9b34f645768a54132ef444ac5
# via twine
scriv==1.1.0 \
--hash=sha256:1064101623e318d906d91f7e1405c97af414c67f0c7da8ee4d08eaa523b735eb \
--hash=sha256:f2670624b2c44cdf34224c8b032b71a00a41b78e9f587140da6dd0b010e66b75
scriv==1.2.0 \
--hash=sha256:26b65a903da7d9aefc712a0d4150b8638302b4758bd428bbd773dd918c61c621 \
--hash=sha256:bb61c30fea73158a4d18c28bbb57821c308245683efb0d897bd45e4a7856b472
# via -r doc/requirements.in
setuptools==66.0.0 \
--hash=sha256:a78d01d1e2c175c474884671dde039962c9d74c7223db7369771fcf6e29ceeab \
--hash=sha256:bd6eb2d6722568de6d14b87c44a96fac54b2a45ff5e940e639979a3d1792adb6
setuptools==66.1.1 \
--hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \
--hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8
# via check-manifest
six==1.16.0 \
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
@@ -662,9 +682,9 @@ tornado==6.2 \
--hash=sha256:d3a2f5999215a3a06a4fc218026cd84c61b8b2b40ac5296a6db1f1451ef04c1e \
--hash=sha256:e5f923aa6a47e133d1cf87d60700889d7eae68988704e20c75fb2d65677a8e4b
# via livereload
tox==4.3.4 \
--hash=sha256:84ee61b27dc983cb5b5d9ef93af10ce54a0e3992df73335fcdf3e8a3d3453a93 \
--hash=sha256:f5ac33b55de2f8764cff260661eb1257107a21c4819714b04f14669991aa7772
tox==4.4.2 \
--hash=sha256:258895ba5de919490c03ef97467c4c8c42954537dfd96ae72cc2fb63dac67cf0 \
--hash=sha256:3d8a8dd8a5afdc0d37af3e2b4959e427fe22530d0aa599baf0120e144b3defa3
# via
# -r requirements/tox.pip
# tox-gh
@@ -710,6 +730,7 @@ typing-extensions==4.4.0 \
# -r requirements/pytest.pip
# astroid
# importlib-metadata
# markdown-it-py
# platformdirs
# pylint
# rich
22 changes: 19 additions & 3 deletions requirements/mypy.pip
Original file line number Diff line number Diff line change
@@ -4,6 +4,22 @@
#
# make upgrade
#
atheris==2.2.2 \
--hash=sha256:0f02b03542266e438649e97ebbf5f96b94661cebca49a85420424cf65fdd1e87 \
--hash=sha256:13eb3154994fe6d1330d76d970eefe25b433af2d775e690992890b714d54b68e \
--hash=sha256:2087933ec91df9d3fb2ee22649c9811536515519d88bcc587d67018c3f0227f6 \
--hash=sha256:30f1255319fe87765639e451a178a4732b1185af43b5c9b842591f03830cf8ec \
--hash=sha256:33213d1f2e7f88d976c00dc3d19cc91e1304cd3d4dfba8f3ad5383093f7c55ab \
--hash=sha256:6606b443ddf3932333aa6854bad2c4a000a65f1faeb4f559e8ea376af255278b \
--hash=sha256:8e692836e6a8c41724c354a4f68fe35349bbc88af4708d835abef074ad5cb3f2 \
--hash=sha256:9fb4c5e6df23b6b3650e5cb8e4780d189ae34443a23339750742a0de92ea0101 \
--hash=sha256:ac727bcfc3345e2562722c517c836abe65ab8d7e4eaad1d792a6c85765868aff \
--hash=sha256:d06fdfe077d8188c5acdccb8d4cbb34a3fc2d6f84dbb7b807f523cc5f6e9b8a4 \
--hash=sha256:ebccc878ba5b958a42a97edcedff9ff46882b7c968e84cbf32632588457838f4 \
--hash=sha256:f305a4c95575e8372774d20c28f6345f21ab7d926da8ebdd1b92f92475f5ef0b \
--hash=sha256:fc0e4bf0830003bab8509147385184eae347a191e8f16e5e2d650aaafdcd5eb0 \
--hash=sha256:fd4d8050f548e2583ed4c4600211f341537f077bf54399f7b4f4d814b112f35b
# via -r requirements/pytest.pip
attrs==22.2.0 \
--hash=sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836 \
--hash=sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99
@@ -32,9 +48,9 @@ flaky==3.7.0 \
--hash=sha256:3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d \
--hash=sha256:d6eda73cab5ae7364504b7c44670f70abed9e75f77dd116352f662817592ec9c
# via -r requirements/pytest.pip
hypothesis==6.62.1 \
--hash=sha256:7d1e2f9871e6509662da317adf9b4aabd6b38280fb6c7930aa4f574d2ed25150 \
--hash=sha256:d00a4a9c54b0b8b4570fe1abe42395807a973b4a507e6718309800e6f84e160d
hypothesis==6.65.1 \
--hash=sha256:4b7ae16db09151d17e5feebea07f4f84693cc1573c25e280bc92e619df24182b \
--hash=sha256:fb9757f4b556fc73c2eaa2c1b7d39d0184c75e4cb77dadaf6fa59373838bd629
# via -r requirements/pytest.pip
importlib-metadata==6.0.0 \
--hash=sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad \
6 changes: 3 additions & 3 deletions requirements/pip-tools.pip
Original file line number Diff line number Diff line change
@@ -34,9 +34,9 @@ pyproject-hooks==1.0.0 \
--hash=sha256:283c11acd6b928d2f6a7c73fa0d01cb2bdc5f07c57a2eeb6e83d5e56b97976f8 \
--hash=sha256:f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5
# via build
setuptools==66.0.0 \
--hash=sha256:a78d01d1e2c175c474884671dde039962c9d74c7223db7369771fcf6e29ceeab \
--hash=sha256:bd6eb2d6722568de6d14b87c44a96fac54b2a45ff5e940e639979a3d1792adb6
setuptools==66.1.1 \
--hash=sha256:6f590d76b713d5de4e49fe4fbca24474469f53c83632d5d0fd056f7ff7e8112b \
--hash=sha256:ac4008d396bc9cd983ea483cb7139c0240a07bbc74ffb6232fceffedc6cf03a8
# via pip-tools
tomli==2.0.1 \
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
1 change: 1 addition & 0 deletions requirements/pytest.in
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@
# The pytest specifics used by coverage.py
# "make upgrade" turns this into requirements/pytest.pip.

atheris
flaky
hypothesis
pytest
22 changes: 19 additions & 3 deletions requirements/pytest.pip
Original file line number Diff line number Diff line change
@@ -4,6 +4,22 @@
#
# make upgrade
#
atheris==2.2.2 \
--hash=sha256:0f02b03542266e438649e97ebbf5f96b94661cebca49a85420424cf65fdd1e87 \
--hash=sha256:13eb3154994fe6d1330d76d970eefe25b433af2d775e690992890b714d54b68e \
--hash=sha256:2087933ec91df9d3fb2ee22649c9811536515519d88bcc587d67018c3f0227f6 \
--hash=sha256:30f1255319fe87765639e451a178a4732b1185af43b5c9b842591f03830cf8ec \
--hash=sha256:33213d1f2e7f88d976c00dc3d19cc91e1304cd3d4dfba8f3ad5383093f7c55ab \
--hash=sha256:6606b443ddf3932333aa6854bad2c4a000a65f1faeb4f559e8ea376af255278b \
--hash=sha256:8e692836e6a8c41724c354a4f68fe35349bbc88af4708d835abef074ad5cb3f2 \
--hash=sha256:9fb4c5e6df23b6b3650e5cb8e4780d189ae34443a23339750742a0de92ea0101 \
--hash=sha256:ac727bcfc3345e2562722c517c836abe65ab8d7e4eaad1d792a6c85765868aff \
--hash=sha256:d06fdfe077d8188c5acdccb8d4cbb34a3fc2d6f84dbb7b807f523cc5f6e9b8a4 \
--hash=sha256:ebccc878ba5b958a42a97edcedff9ff46882b7c968e84cbf32632588457838f4 \
--hash=sha256:f305a4c95575e8372774d20c28f6345f21ab7d926da8ebdd1b92f92475f5ef0b \
--hash=sha256:fc0e4bf0830003bab8509147385184eae347a191e8f16e5e2d650aaafdcd5eb0 \
--hash=sha256:fd4d8050f548e2583ed4c4600211f341537f077bf54399f7b4f4d814b112f35b
# via -r requirements/pytest.in
attrs==22.2.0 \
--hash=sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836 \
--hash=sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99
@@ -28,9 +44,9 @@ flaky==3.7.0 \
--hash=sha256:3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d \
--hash=sha256:d6eda73cab5ae7364504b7c44670f70abed9e75f77dd116352f662817592ec9c
# via -r requirements/pytest.in
hypothesis==6.62.1 \
--hash=sha256:7d1e2f9871e6509662da317adf9b4aabd6b38280fb6c7930aa4f574d2ed25150 \
--hash=sha256:d00a4a9c54b0b8b4570fe1abe42395807a973b4a507e6718309800e6f84e160d
hypothesis==6.65.1 \
--hash=sha256:4b7ae16db09151d17e5feebea07f4f84693cc1573c25e280bc92e619df24182b \
--hash=sha256:fb9757f4b556fc73c2eaa2c1b7d39d0184c75e4cb77dadaf6fa59373838bd629
# via -r requirements/pytest.in
importlib-metadata==6.0.0 \
--hash=sha256:7efb448ec9a5e313a57655d35aa54cd3e01b7e1fbcf72dce1bf06119420f5bad \
18 changes: 9 additions & 9 deletions requirements/tox.pip
Original file line number Diff line number Diff line change
@@ -4,9 +4,9 @@
#
# make upgrade
#
cachetools==5.2.1 \
--hash=sha256:5991bc0e08a1319bb618d3195ca5b6bc76646a49c21d55962977197b301cc1fe \
--hash=sha256:8462eebf3a6c15d25430a8c27c56ac61340b2ecf60c9ce57afc2b97e450e47da
cachetools==5.3.0 \
--hash=sha256:13dfddc7b8df938c21a940dfa6557ce6e94a2f1cdfa58eb90c805721d58f2c14 \
--hash=sha256:429e1a1e845c008ea6c85aa35d4b98b65d6a9763eeef3e37e92728a12d1de9d4
# via tox
chardet==5.1.0 \
--hash=sha256:0d62712b956bc154f85fb0a266e2a3c5913c2967e00348701b32411d6def31e5 \
@@ -51,19 +51,19 @@ pluggy==1.0.0 \
--hash=sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159 \
--hash=sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3
# via tox
pyproject-api==1.4.0 \
--hash=sha256:ac85c1f82e0291dbae5a7739dbb9a990e11ee4034c9b5599ea714f07a24ecd71 \
--hash=sha256:c34226297781efdd1ba4dfb74ce21076d9a8360e2125ea31803c1a02c76b2460
pyproject-api==1.5.0 \
--hash=sha256:0962df21f3e633b8ddb9567c011e6c1b3dcdfc31b7860c0ede7e24c5a1200fbe \
--hash=sha256:4c111277dfb96bcd562c6245428f27250b794bfe3e210b8714c4f893952f2c17
# via tox
tomli==2.0.1 \
--hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \
--hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f
# via
# pyproject-api
# tox
tox==4.3.4 \
--hash=sha256:84ee61b27dc983cb5b5d9ef93af10ce54a0e3992df73335fcdf3e8a3d3453a93 \
--hash=sha256:f5ac33b55de2f8764cff260661eb1257107a21c4819714b04f14669991aa7772
tox==4.4.2 \
--hash=sha256:258895ba5de919490c03ef97467c4c8c42954537dfd96ae72cc2fb63dac67cf0 \
--hash=sha256:3d8a8dd8a5afdc0d37af3e2b4959e427fe22530d0aa599baf0120e144b3defa3
# via
# -r requirements/tox.in
# tox-gh
65 changes: 65 additions & 0 deletions tests/test_fuzz_parser.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0

"""Fuzz test PythonParser.parse_source
This runs on OSS-Fuzz where coveragepy's set is located at:
https://github.com/google/oss-fuzz/tree/master/projects/coveragepy
It is configured to be a unit test as well, which makes it easier to test
during development, e.g. to catch breaking changes.
The goal of the fuzzing by way of OSS-Fuzz is to:
- Find any uncaught illegitimate exceptions.
- Find any security vulnerabilities as identified by pysecsan:
https://pypi.org/project/pysecsan/
Notice, pysecsan will be enabled by OSS-Fuzz and is not explicitly enabled
here.
"""

import sys
import atheris
import pytest

from coverage.exceptions import NotPython
from coverage.parser import PythonParser


@pytest.mark.parametrize(
"data",
[
b"random_data",
b"more random data"
]
)
def test_one_input(data):
"""Fuzzer for PythonParser."""
fdp = atheris.FuzzedDataProvider(data)

t = fdp.ConsumeUnicodeNoSurrogates(1024)
if not t:
return

try:
p = PythonParser(text = t)
p.parse_source()
except (NotPython, MemoryError) as e2:
# Catch Memory error to avoid reporting stack overflows.
# Catch NotPython issues as these do not signal a bug.
pass
except ValueError as e:
if "source code string cannot contain null bytes" in str(e):
# Not interesting
pass
else:
raise e


def main():
"""Launch fuzzing campaign."""
atheris.instrument_all()
atheris.Setup(sys.argv, TestOneInput, enable_python_coverage=True)
atheris.Fuzz()


if __name__ == "__main__":
main()