bpo-36684: Split out gcc and test coverage builds (GH-13146)

The combined Python and C coverage test runs now exceed Travis's
50-minute time limit. Splitting them into separate runs gives more
leeway.

Also, adding branch coverage to Python testing and ensure that
coverage is reported even if tests fail. (The primary builds are
for tracking test failures.)
This commit is contained in:
Gordon P. Hemsley 2019-05-11 23:33:35 -04:00 committed by Inada Naoki
parent 26f55c29f2
commit 87068ed009
1 changed files with 18 additions and 4 deletions

View File

@ -86,22 +86,36 @@ matrix:
addons: addons:
apt: apt:
packages: packages:
- lcov
- xvfb - xvfb
before_script: before_script:
- ./configure - ./configure
- make coverage -s -j4 - make -j4
# Need a venv that can parse covered code. # Need a venv that can parse covered code.
- ./python -m venv venv - ./python -m venv venv
- ./venv/bin/python -m pip install -U coverage - ./venv/bin/python -m pip install -U coverage
- ./venv/bin/python -m test.pythoninfo - ./venv/bin/python -m test.pythoninfo
script: script:
# Skip tests that re-run the entire test suite. # Skip tests that re-run the entire test suite.
- xvfb-run ./venv/bin/python -m coverage run --pylib -m test --fail-env-changed -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures - xvfb-run ./venv/bin/python -m coverage run --branch --pylib -m test --fail-env-changed -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures || true
after_script: # Probably should be after_success once test suite updated to run under coverage.py. after_script: # Probably should be after_success once test suite updated to run under coverage.py.
# Make the `coverage` command available to Codecov w/ a version of Python that can parse all source files. # Make the `coverage` command available to Codecov w/ a version of Python that can parse all source files.
- source ./venv/bin/activate - source ./venv/bin/activate
- make coverage-lcov - bash <(curl -s https://codecov.io/bash)
- os: linux
language: c
compiler: gcc
env: OPTIONAL=true
addons:
apt:
packages:
- lcov
- xvfb
before_script:
- ./configure
script:
- xvfb-run make -j4 coverage-report
after_script: # Probably should be after_success once test suite updated to run under coverage.py.
- make pythoninfo
- bash <(curl -s https://codecov.io/bash) - bash <(curl -s https://codecov.io/bash)