Skip to content

Modify test_codecs to use the new codecs.unregister() function #86085

Description

@shihai1991
BPO 41919
Nosy @vstinner, @pablogsal, @shihai1991
PRs
  • bpo-41919: Move the codecs.register operation to the setup of testcases. #22513
  • bpo-41919: Revert "bpo-41919: Move the codecs.register operation to the setup of testcases." #22961
  • bpo-41919: Avoid resource leak in test_io module #22973
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = None
    closed_at = <Date 2020-10-25.18:38:56.606>
    created_at = <Date 2020-10-03.09:37:07.680>
    labels = ['type-feature', 'tests', '3.10']
    title = 'Modify test_codecs to use the new codecs.unregister() function'
    updated_at = <Date 2020-10-25.18:38:56.605>
    user = 'https://github.com/shihai1991'

    bugs.python.org fields:

    activity = <Date 2020-10-25.18:38:56.605>
    actor = 'pablogsal'
    assignee = 'none'
    closed = True
    closed_date = <Date 2020-10-25.18:38:56.606>
    closer = 'pablogsal'
    components = ['Tests']
    creation = <Date 2020-10-03.09:37:07.680>
    creator = 'shihai1991'
    dependencies = []
    files = []
    hgrepos = []
    issue_num = 41919
    keywords = ['patch']
    message_count = 6.0
    messages = ['377863', '378708', '379565', '379567', '379584', '379598']
    nosy_count = 3.0
    nosy_names = ['vstinner', 'pablogsal', 'shihai1991']
    pr_nums = ['22513', '22961', '22973']
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue41919'
    versions = ['Python 3.10']

    Linked PRs

    Activity

    1. shihai1991 commented on Oct 3, 2020

      @shihai1991
      MemberAuthor

      After PR22360 merged, we can move the codecs' register operation to testcases.

    2. changed the title [-]Move the codecs' register operation to testcases[/-] [+]Move the codecs.register operation to testcases[/+] on Oct 3, 2020
    3. changed the title [-]Move the codecs' register operation to testcases[/-] [+]Move the codecs.register operation to testcases[/+] on Oct 3, 2020
    4. changed the title [-]Move the codecs.register operation to testcases[/-] [+]Modify test_codecs to use the new codecs.unregister() function[/+] on Oct 3, 2020
    5. changed the title [-]Move the codecs.register operation to testcases[/-] [+]Modify test_codecs to use the new codecs.unregister() function[/+] on Oct 3, 2020
    6. vstinner commented on Oct 16, 2020

      @vstinner
      Member

      New changeset c9f696c by Hai Shi in branch 'master':
      bpo-41919, test_codecs: Move codecs.register calls to setUp() (GH-22513)
      c9f696c

    7. pablogsal commented on Oct 25, 2020

      @pablogsal
      Member

      Commit c9f696c introduced a reference leak in the test suite. See https://bugs.python.org/issue42145:

      c9f696c is the first bad commit
      commit c9f696c
      Author: Hai Shi <shihai1992@gmail.com>
      Date: Fri Oct 16 16:34:15 2020 +0800

      bpo-41919, test_codecs: Move codecs.register calls to setUp() (GH-22513)
      

      Reverting the commit eliminates the problem:

      rences, sum=12
      test_io leaked [1, 1, 1, 1] memory blocks, sum=4
      test_io failed

      == Tests result: FAILURE ==

      1 test failed:
      test_io

      Total duration: 397 ms
      Tests result: FAILURE
      g
      ~/github/python/master master|bisect*
      ❯ git revert c9f696c
      Auto-merging Lib/test/test_codecs.py
      [master f3de7c00b4] Revert "bpo-41919, test_codecs: Move codecs.register calls to setUp() (GH-22513)"
      7 files changed, 112 insertions(+), 16 deletions(-)

      ~/github/python/master master|bisect* ⇡
      ❯ make -j -s
      CC='gcc -pthread' LDSHARED='gcc -pthread -shared ' OPT='-g -Og -Wall' _TCLTK_INCLUDES='' _TCLTK_LIBS='' ./python -E ./setup.py -q build

      The following modules found by detect_modules() in setup.py, have been
      built by the Makefile instead, as configured by the Setup files:
      _abc atexit pwd
      time

      ~/github/python/master master|bisect* ⇡
      ❯ ./python -m test test_io -m test.test_io.CTextIOWrapperTest.test_read_one_by_one -R :
      0:00:00 load avg: 2.57 Run tests sequentially
      0:00:00 load avg: 2.57 [1/1] test_io
      beginning 9 repetitions
      123456789
      .........

      == Tests result: SUCCESS ==

      1 test OK.

      Total duration: 455 ms
      Tests result: SUCCESS

      * Move the codecs' (un)register operation to testcases.
      * Remove _codecs._forget_codec() and _PyCodec_Forget()
      

      Lib/test/test_charmapcodec.py | 7 +++++--
      Lib/test/test_codecs.py | 25 +++----------------------
      Lib/test/test_io.py | 7 +++----
      Lib/test/test_unicode.py | 5 ++++-
      Modules/_codecsmodule.c | 20 --------------------
      Modules/clinic/_codecsmodule.c.h | 39 +--------------------------------------
      Python/codecs.c | 25 -------------------------
      7 files changed, 16 insertions(+), 112 deletions(-)

    8. pablogsal commented on Oct 25, 2020

      @pablogsal
      Member

      AS this is masking other issues in the build bots, we need to revert the commit unless is fixed in 24 hours per the buildbot workflow

    9. shihai1991 commented on Oct 25, 2020

      @shihai1991
      MemberAuthor

      AS this is masking other issues in the build bots, we need to revert the commit unless is fixed in 24 hours per the buildbot workflow

      Thanks, Pablo. I checked that only test_io.py have resource leak.
      I create PR-22973, pls take a look if you have free time, thanks.

    10. pablogsal commented on Oct 25, 2020

      @pablogsal
      Member

      New changeset 14cdc21 by Hai Shi in branch 'master':
      bpo-41919: Avoid resource leak in test_io (GH-22973)
      14cdc21

    11. transferred this issue fromon Apr 10, 2022
    12. added 2 commits that reference this issue on Jul 3, 2023
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    No one assigned

      Labels

      3.10 (EOL)end of lifetestsTests in the Lib/test dirtype-featureA feature request or enhancement

      Projects

      No projects

        Milestone

        No milestone

        Relationships

        None yet

        Development

        No branches or pull requests

        Issue actions