Merge pull request #139 from effigies/mnt/cp312 #3
This file contains 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
# This workflow runs the full set of of indexed_gzip | |
# unit tests on a range of different versions of Python, | |
# and on different operating systems and architectures. | |
# It is run on pushes to the main branch. | |
on: | |
push: | |
branches: | |
- main | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
# Quick tests run on all OSes/python versions | |
test-indexed_gzip: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
extra-args: ["", "--concat"] | |
exclude: | |
- os: windows-latest | |
python-version: 3.12 | |
env: | |
PLATFORM: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
TEST_SUITE: "not (slow_test or zran_test)" | |
EXTRA_ARGS: ${{ matrix.extra-args }} | |
ENV_DIR: ./test.env | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Create test environment | |
run: bash ./.ci/create_test_env.sh "$ENV_DIR" | |
- name: Log test environment | |
run: | | |
source ./.ci/activate_env.sh "$ENV_DIR" | |
python -V | |
pip freeze | |
- name: Download zlib | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: bash ./.ci/download_zlib.sh | |
- name: Build indexed_gzip | |
run: bash ./.ci/build_dev_indexed_gzip.sh "$ENV_DIR" | |
- name: Run tests | |
run: bash ./.ci/run_tests.sh "$ENV_DIR" | |
# Slow indexed_gzip tests run on all OSes | |
test-indexed_gzip-slow: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
include: | |
- os: "windows-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "" | |
- os: "macos-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "" | |
- os: "ubuntu-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "" | |
nelems: "" | |
- os: "windows-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "--concat" | |
nelems: "" | |
- os: "macos-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "--concat" | |
nelems: "" | |
- os: "ubuntu-latest" | |
test-suite: "indexed_gzip_test and slow_test" | |
extra-args: "--concat" | |
nelems: "" | |
# mmap test errors under windos (I think because | |
# memory needs to be alliocated for the mmap, but | |
# there's not enough RAM) | |
- os: "macos-latest" | |
test-suite: "indexed_gzip_test" | |
extra-args: "--use_mmap" | |
nelems: "805306368" | |
- os: "ubuntu-latest" | |
test-suite: "indexed_gzip_test" | |
extra-args: "--use_mmap" | |
nelems: "805306368" | |
env: | |
PLATFORM: ${{ matrix.os }} | |
PYTHON_VERSION: 3.10 | |
TEST_SUITE: ${{ matrix.test-suite }} | |
EXTRA_ARGS: ${{ matrix.extra-args }} | |
NELEMS: ${{ matrix.nelems }} | |
ENV_DIR: ./test.env | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.10" | |
architecture: x64 | |
- name: Create test environment | |
run: bash ./.ci/create_test_env.sh "$ENV_DIR" | |
- name: Log test environment | |
run: | | |
source ./.ci/activate_env.sh "$ENV_DIR" | |
python -V | |
pip freeze | |
- name: Download zlib | |
if: ${{ matrix.os == 'windows-latest' }} | |
run: bash ./.ci/download_zlib.sh | |
- name: Build indexed_gzip | |
run: bash ./.ci/build_dev_indexed_gzip.sh "$ENV_DIR" | |
- name: Run tests | |
run: bash ./.ci/run_tests.sh "$ENV_DIR" | |
# zran tests run only on ubuntu | |
test-zran: | |
runs-on: "ubuntu-latest" | |
strategy: | |
matrix: | |
include: | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
extra-args: "" | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
extra-args: "--concat" | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "test_readbuf_spacing_sizes" | |
extra-args: "" | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "test_readbuf_spacing_sizes" | |
extra-args: "--concat" | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "test_seek_then_read_block" | |
extra-args: "" | |
- niters: "5000" | |
nelems: "rnd_1000000" | |
test-pattern: "test_seek_then_read_block" | |
extra-args: "--concat" | |
- niters: "5000" | |
nelems: "rnd_2000000" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
extra-args: "" | |
- niters: "5000" | |
nelems: "rnd_2000000" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
extra-args: "--concat" | |
- niters: "500" | |
nelems: "rnd_2000000" | |
test-pattern: "test_readbuf_spacing_sizes" | |
extra-args: "" | |
- niters: "500" | |
nelems: "rnd_2000000" | |
test-pattern: "test_readbuf_spacing_sizes" | |
extra-args: "--concat" | |
- niters: "500" | |
nelems: "rnd_2000000" | |
test-pattern: "test_seek_then_read_block" | |
extra-args: "" | |
- niters: "500" | |
nelems: "rnd_2000000" | |
test-pattern: "test_seek_then_read_block" | |
extra-args: "--concat" | |
- niters: "1000" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
- niters: "1000" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap --concat" | |
test-pattern: "not test_readbuf_spacing_sizes and not test_seek_then_read_block" | |
- niters: "50" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap" | |
test-pattern: "test_readbuf_spacing_sizes" | |
- niters: "50" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap --concat" | |
test-pattern: "test_readbuf_spacing_sizes" | |
- niters: "25" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap" | |
test-pattern: "test_seek_then_read_block" | |
- niters: "25" | |
nelems: "rnd_800000000" | |
extra-args: "--use_mmap --concat" | |
test-pattern: "test_seek_then_read_block" | |
env: | |
PLATFORM: ${{ matrix.os }} | |
PYTHON_VERSION: "3.10" | |
TEST_SUITE: "zran_test" | |
TEST_PATTERN: ${{ matrix.test-pattern }} | |
EXTRA_ARGS: ${{ matrix.extra-args }} | |
NELEMS: ${{ matrix.nelems }} | |
NITERS: ${{ matrix.niters }} | |
ENV_DIR: ./test.env | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.10" | |
architecture: "x64" | |
- name: Create test environment | |
run: bash ./.ci/create_test_env.sh "$ENV_DIR" | |
- name: Log test environment | |
run: | | |
source ./.ci/activate_env.sh "$ENV_DIR" | |
python -V | |
pip freeze | |
- name: Build indexed_gzip | |
run: bash ./.ci/build_dev_indexed_gzip.sh "$ENV_DIR" | |
- name: Run tests | |
run: bash ./.ci/run_tests.sh "$ENV_DIR" | |
# Tests on 32 bit platform | |
test-32bit: | |
runs-on: ubuntu-latest | |
container: i386/ubuntu:20.04 | |
strategy: | |
matrix: | |
python-version: ["3.9"] | |
extra-args: ["", "--concat"] | |
env: | |
USING_OS_PYTHON: 1 | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
EXTRA_ARGS: ${{ matrix.extra-args }} | |
ENV_DIR: ./test.env | |
steps: | |
- name: Install git | |
run: apt-get update -y && apt-get install -y git | |
- uses: actions/checkout@v1 | |
- name: Install system dependencies | |
run: bash ./.ci/install_32bit_dependencies.sh | |
- name: Create test environment | |
run: bash ./.ci/create_test_env.sh "$ENV_DIR" | |
- name: Log test environment | |
run: | | |
source ./.ci/activate_env.sh "$ENV_DIR" | |
python -V | |
pip freeze | |
- name: Build indexed_gzip | |
run: bash ./.ci/build_dev_indexed_gzip.sh "$ENV_DIR" | |
- name: Run tests | |
run: bash ./.ci/run_tests.sh "$ENV_DIR" |