Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

gh-107782: Use _testcapi to test non-representable signatures #109325

Merged

Conversation

serhiy-storchaka
Copy link
Member

@serhiy-storchaka serhiy-storchaka commented Sep 12, 2023

Builtin functions and methods that have non-representable signatures today will have representable signatures yesterday, and they will become unusable for testing this feature.

So we need to add special functions and methods to the _testcapi module that always have non-representable signatures.

Builtin functions and methods that have non-representable signatures today
will have representable signatures yesterday, and they will become unusable
for testing this feature.

So we need to add special functions and methods to the _testcapi module
that always have non-representable signatures.
@serhiy-storchaka
Copy link
Member Author

I do not understand why Tools/c-analyzer/check-c-globals.py complains about DocStringUnrepresentableSignatureTest, but not about DocStringNoSignatureTest in Modules/_testcapi/docstring.c. They are almost identical, only names and methods are different. Both are added by me, so there is no any special magic hidden.

@ericsnowcurrently, could you explain this?

@ericsnowcurrently
Copy link
Member

Unfortunately, the tool never learned to reliably identify implicitly-const static definitions (e.g. Py*Def arrays/structs like the PyMethodDef one you added in this PR). Instead, such variables usually have to be manually added to Tools/c-analyzer/cpython/ignored.tsv. DocStringNoSignatureTest was added there a while back.

You can move the entry you added to globals-to-fix.tsv over to ignored.tsv.

@serhiy-storchaka
Copy link
Member Author

Thank you Eric. I did not know about ignored.tsv.

@serhiy-storchaka serhiy-storchaka merged commit 1f885df into python:main Sep 14, 2023
21 checks passed
@serhiy-storchaka serhiy-storchaka deleted the test-pydoc-unrepresentable branch September 14, 2023 06:12
@serhiy-storchaka serhiy-storchaka added needs backport to 3.11 only security fixes needs backport to 3.12 bug and security fixes labels Sep 14, 2023
@miss-islington
Copy link
Contributor

Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖 I'm not a witch! I'm not a witch!

@miss-islington
Copy link
Contributor

Thanks @serhiy-storchaka for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Sorry, @serhiy-storchaka, I could not cleanly backport this to 3.12 due to a conflict.
Please backport using cherry_picker on command line.
cherry_picker 1f885df2a580360c5de69cc41191f3c6bfaaeb35 3.12

@miss-islington
Copy link
Contributor

Sorry, @serhiy-storchaka, I could not cleanly backport this to 3.11 due to a conflict.
Please backport using cherry_picker on command line.
cherry_picker 1f885df2a580360c5de69cc41191f3c6bfaaeb35 3.11

@serhiy-storchaka serhiy-storchaka removed needs backport to 3.11 only security fixes needs backport to 3.12 bug and security fixes labels Sep 14, 2023
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot PPC64LE RHEL8 LTO 3.x has failed when building commit 1f885df.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/361/builds/4050) and take a look at the build logs.
  4. Check if the failure is related to this commit (1f885df) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/361/builds/4050

Failed tests:

  • test.test_asyncio.test_subprocess

Failed subtests:

  • test_subprocess_consistent_callbacks - test.test_asyncio.test_subprocess.SubprocessThreadedWatcherTests.test_subprocess_consistent_callbacks

Summary of the results of the build (if available):

==

Click to see traceback logs
Traceback (most recent call last):
  File "/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Lib/test/test_asyncio/test_subprocess.py", line 788, in test_subprocess_consistent_callbacks
    self.loop.run_until_complete(main())
  File "/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Lib/asyncio/base_events.py", line 664, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Lib/test/test_asyncio/test_subprocess.py", line 780, in main
    self.assertEqual(events, [
AssertionError: Lists differ: [('pi[29 chars]t'), 'pipe_connection_lost', ('pipe_data_recei[57 chars]ted'] != [('pi[29 chars]t'), ('pipe_data_received', 2, b'stderr'), 'pi[57 chars]ted']

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants