Staging
v0.5.1
https://github.com/python/cpython
Revision 5b1ef200d31a74a9b478d0217d73ed0a659a8a06 authored by Victor Stinner on 17 March 2020, 17:09:46 UTC, committed by GitHub on 17 March 2020, 17:09:46 UTC
Extension modules: m_traverse, m_clear and m_free functions of
PyModuleDef are no longer called if the module state was requested
but is not allocated yet. This is the case immediately after the
module is created and before the module is executed (Py_mod_exec
function). More precisely, these functions are not called if m_size is
greater than 0 and the module state (as returned by
PyModule_GetState()) is NULL.

Extension modules without module state (m_size <= 0) are not affected.

Co-Authored-By: Petr Viktorin <encukou@gmail.com>
1 parent 5226894
Raw File
Tip revision: 5b1ef200d31a74a9b478d0217d73ed0a659a8a06 authored by Victor Stinner on 17 March 2020, 17:09:46 UTC
bpo-39824: module_traverse() don't call m_traverse if md_state=NULL (GH-18738)
Tip revision: 5b1ef20
posix-steps.yml
parameters:
  coverage: false
  sudo_dependencies: sudo
  dependencies: apt
  patchcheck: true
  xvfb: true

steps:
- checkout: self
  clean: true
  fetchDepth: 5

# Work around a known issue affecting Ubuntu VMs on Pipelines
- script: sudo setfacl -Rb /home/vsts
  displayName: 'Workaround ACL issue'

- script: ${{ parameters.sudo_dependencies }} ./.azure-pipelines/posix-deps-${{ parameters.dependencies }}.sh $(openssl_version)
  displayName: 'Install dependencies'

- script: ./configure --with-pydebug
  displayName: 'Configure CPython (debug)'

- script: make -j4
  displayName: 'Build CPython'

- ${{ if eq(parameters.coverage, 'true') }}:
  - script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage
    displayName: 'Set up virtual environment'

  - script: ./venv/bin/python -m test.pythoninfo
    displayName: 'Display build info'

  - script: |
      $COMMAND -m coverage run --pylib -m test \
                --fail-env-changed \
                -uall,-cpu \
                --junit-xml=$(build.binariesDirectory)/test-results.xml \
                -x test_multiprocessing_fork \
                -x test_multiprocessing_forkserver \
                -x test_multiprocessing_spawn \
                -x test_concurrent_futures
    displayName: 'Tests with coverage'
    env:
      ${{ if eq(parameters.xvfb, 'true') }}:
        COMMAND: xvfb-run ./venv/bin/python
      ${{ if ne(parameters.xvfb, 'true') }}:
        COMMAND: ./venv/bin/python

  - script: ./venv/bin/python -m coverage xml
    displayName: 'Generate coverage.xml'

  - script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash) -y .github/codecov.yml
    displayName: 'Publish code coverage results'


- ${{ if ne(parameters.coverage, 'true') }}:
  - script: make pythoninfo
    displayName: 'Display build info'

  - script: $COMMAND buildbottest TESTOPTS="-j4 -uall,-cpu --junit-xml=$(build.binariesDirectory)/test-results.xml"
    displayName: 'Tests'
    env:
      ${{ if eq(parameters.xvfb, 'true') }}:
        COMMAND: xvfb-run make
      ${{ if ne(parameters.xvfb, 'true') }}:
        COMMAND: make

- ${{ if eq(parameters.patchcheck, 'true') }}:
  - script: ./python Tools/scripts/patchcheck.py --travis true
    displayName: 'Run patchcheck.py'
    condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))


- task: PublishTestResults@2
  displayName: 'Publish Test Results'
  inputs:
    testResultsFiles: '$(build.binariesDirectory)/test-results.xml'
    mergeTestResults: true
    testRunTitle: $(testRunTitle)
    platform: $(testRunPlatform)
  condition: succeededOrFailed()
back to top