FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

[3.11] gh-87846: test_io: Ignore OpenWrapper in test___all__ by encukou · Pull Request #126478 · python/cpython · GitHub

/ cpython Public

[3.11] gh-87846: test_io: Ignore OpenWrapper in test___all__ - #126478

Merged
pablogsal merged 1 commit into
python:3.11from
encukou:openwrapper-test-3.11
Nov 6, 2024
Merged

[3.11] gh-87846: test_io: Ignore OpenWrapper in test___all__#126478
pablogsal merged 1 commit into
python:3.11from
encukou:openwrapper-test-3.11

Conversation

encukou commented Nov 6, 2024
edited by bedevere-app Bot
Loading

Copy link
Copy Markdown
Member

@pablogsal, are you interested in fixing 3.11 buildbots that consistently warn, rather than fail?


test_io fails if test_openwrapper runs before test___all__. This consistently happens on some refleaks buildbots, for example Windows or Fedora, but it's only marked as a warning: when only test___all__ is re-run in a fresh process, it succeeds.

Locally, this can be reproduced by running test_openwrapper and test__all__, twice (since in a single run, test_openwrapper comes after test___all__). I don't know of a more elegant way than:

./python -m test test_io test_io -m '*test_[o_][p_][ea][nl][wl]*' -v

The reason is that the deprecated OpenWrapper is added to the module on demand in __getattr__, after which it shows up in dir(io).

Add it to not_exported so that check__all__ ignores it when it exists.

The deprecated `OpenWrapper` is added to the module on demand
in `__getattr__`, so it might or might not show up in `dir(io)`
depending on whether e.g. `test_openwrapper` was run.

Add it to `not_exported` so that check__all__ ignores it
when it exists.

The test consistently failed on some refleaks buildbots (but
not when the test is re-run, so it was only marked as a warning).
Locally, it can be reproduced by running `test_openwrapper` and
`test__all__`, twice:

    ./python -m test test_io test_io -m '*test_[o_][p_][ea][nl][wl]*' -v

vstinner left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

LGTM

Copy link
Copy Markdown
Member

I'm fine to backport since this is a change in tests

pablogsal merged commit 8c6885d into python:3.11 Nov 6, 2024
encukou deleted the openwrapper-test-3.11 branch November 6, 2024 14:50

encukou commented Nov 7, 2024
edited
Loading

Copy link
Copy Markdown
Member Author

After this was merged, all the 3.11 refleaks buildbots turned red. But, that's an improvement!

There's a pre-existing refleak that was hidden like this:

  • the first test run failed, so the leak check was skipped
  • the second run only ran the failing test_all, which does not leak

I'll find and write/backport a fix. (update: see #111942)

encukou added a commit to encukou/cpython that referenced this pull request Nov 7, 2024
…e_encoding

There's an issue with the 3.11 backport commit e2421a3
The chane for the main branch was:

```diff
+    Py_INCREF(errors);
 ...
     Py_SETREF(self->encoding, encoding);
-    Py_SETREF(self->errors, Py_NewRef(errors));
+    Py_SETREF(self->errors, errors);
```

but in 3.11 this became:

```diff
+    Py_INCREF(errors);
...
     Py_INCREF(errors);
     Py_SETREF(self->encoding, encoding);
     Py_SETREF(self->errors, errors);
```
i.e. there's an extra incref, but it looks -- at least to Git -- like the change
that removes `Py_NewRef` was already applied.

This was not caught because `test_io` refleaks tests were ineffective on 3.11
(see python#126478 (comment)).

Remove the extraneous incref.

encukou commented Nov 11, 2024

Copy link
Copy Markdown
Member Author

FWTW, 3.10 is unaffected: it doesn't have #111370.

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants


Back | FazBrowse Home | New Git URL