Skip to content

CI: enable parallel testing on arm64 build #36719 #38905

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 14 commits into from
Closed
11 changes: 2 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,20 +31,13 @@ env:
git:
depth: false

matrix:
jobs:
fast_finish: true

include:
- arch: arm64
env:
- JOB="3.7, arm64" PYTEST_WORKERS=1 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard and not arm_slow)"

allow_failures:
# Moved to allowed_failures 2020-09-29 due to timeouts https://github.com/pandas-dev/pandas/issues/36719
- arch: arm64
env:
- JOB="3.7, arm64" PYTEST_WORKERS=1 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard and not arm_slow)"

- JOB="3.7, arm64" PYTEST_WORKERS=4 ENV_FILE="ci/deps/travis-37-arm64.yaml" PATTERN="(not slow and not network and not clipboard and not arm_slow)"

before_install:
- echo "before_install"
Expand Down
6 changes: 5 additions & 1 deletion ci/run_tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,11 @@ if [[ $(uname) == "Linux" && -z $DISPLAY ]]; then
XVFB="xvfb-run "
fi

PYTEST_CMD="${XVFB}pytest -m \"$PATTERN\" -n $PYTEST_WORKERS --dist=loadfile -s --strict-markers --durations=30 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas"
# With --dist=no, pytest distributs one test at a time.
# If using other options, running the test suite would be extremely slow on arm64 machine.
# See https://pypi.org/project/pytest-xdist/ for details.
# GH 36719
PYTEST_CMD="${XVFB}pytest -m \"$PATTERN\" -n $PYTEST_WORKERS --dist=no -s --strict-markers --durations=30 --junitxml=test-data.xml $TEST_ARGS $COVERAGE pandas"

if [[ $(uname) != "Linux" && $(uname) != "Darwin" ]]; then
# GH#37455 windows py38 build appears to be running out of memory
Expand Down
2 changes: 1 addition & 1 deletion ci/setup_env.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ else
fi

if [ "${TRAVIS_CPU_ARCH}" == "arm64" ]; then
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.8.5-1/Miniforge3-4.8.5-1-Linux-aarch64.sh"
CONDA_URL="https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-aarch64.sh"
else
CONDA_URL="https://repo.continuum.io/miniconda/Miniconda3-latest-$CONDA_OS.sh"
fi
Expand Down
1 change: 1 addition & 0 deletions pandas/compat/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
PY39 = sys.version_info >= (3, 9)
PYPY = platform.python_implementation() == "PyPy"
IS64 = sys.maxsize > 2 ** 32
ARM64 = platform.machine() == "arm64" or platform.machine() == "aarch64"


def set_function_name(f: F, name: str, cls) -> F:
Expand Down
3 changes: 3 additions & 0 deletions pandas/tests/indexes/interval/test_astype.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import numpy as np
import pytest

from pandas.compat import ARM64

from pandas.core.dtypes.dtypes import CategoricalDtype, IntervalDtype

from pandas import (
Expand Down Expand Up @@ -165,6 +167,7 @@ def test_subtype_integer_with_non_integer_borders(self, subtype):
)
tm.assert_index_equal(result, expected)

@pytest.mark.xfail(ARM64, reason="GH 38923")
def test_subtype_integer_errors(self):
# float64 -> uint64 fails with negative values
index = interval_range(-10.0, 10.0)
Expand Down
4 changes: 3 additions & 1 deletion pandas/tests/tools/test_to_numeric.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
from numpy import iinfo
import pytest

from pandas.compat import ARM64

import pandas as pd
from pandas import DataFrame, Index, Series, to_numeric
import pandas._testing as tm
Expand Down Expand Up @@ -747,7 +749,7 @@ def test_to_numeric_from_nullable_string(values, expected):
"UInt64",
"signed",
"UInt64",
marks=pytest.mark.xfail(reason="GH38798"),
marks=pytest.mark.xfail(not ARM64, reason="GH38798"),
),
([1, 1], "Int64", "unsigned", "UInt8"),
([1.0, 1.0], "Float32", "unsigned", "UInt8"),
Expand Down
2 changes: 2 additions & 0 deletions pandas/tests/window/test_rolling.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import numpy as np
import pytest

from pandas.compat import ARM64
from pandas.errors import UnsupportedFunctionCall

from pandas import (
Expand Down Expand Up @@ -891,6 +892,7 @@ def test_rolling_sem(frame_or_series):
tm.assert_series_equal(result, expected)


@pytest.mark.xfail(ARM64, reason="GH 38921")
@pytest.mark.parametrize(
("func", "third_value", "values"),
[
Expand Down